Прибор для измерения расхода топлива на

Проекты и идеи
Прибор для измерения расхода топлива на микроконтроллере ATMEL

Устройство построено на микроконтроллере фирмы ATMEL MEGA8L.
Процессор работает со скоростью примерно 8 млн. операций в секунду, при частоте тактового генератора 8 МГц. Имеется 3 порта ввода-вывода, один 7 разрядов и 2 полноценных, по 8 разрядов. У микроконтроллера есть еще много разных приятностей, таких как UART, АЦП и т.д. Кроме микроконтроллера, в устройстве, для отображения информации используется текстовый дисплей HD44780 или аналог, например IT8705 или KS0066. Кстати, аналогов таких дисплеев достаточно много, так что если вы видите ЖК дисплей, имеющий до 40 символов в строку и до 4 строк, то с большой степенью уверенности можно сказать, что это дисплей, аналогичный HD44780. Дисплей, использованный мной, поскромнее и отображает 2 строки по 16 символов.


Теперь рассмотрим остальное устройство прибора. Ну начнем с того, что в автомобиле, на котором тестировался прибор, управление форсункой осуществляется «по минусу», то есть на обмотку форсунки постоянно подается "+" напряжения питания, а для открытия, на другой вывод обмотки, через ключевой транзистор, подается "-" напряжения питания. На входе прибора с датчика, для развязки «по питанию», стоит оптопара CNX82A (маркировка оптопары не принципиальна, просто такая под руку попалась, можно подобрать и другую, аналогичную). Последовательно светодиоду LED1 оптопары включен токоограничивающий резистор R3 и катушка индуктивности L1. Ну резистор, надеюсь, понятно зачем включен, чтобы не спалить оптопару, а катушка индуктивности — для того, чтобы ограничить импульс самоиндукции, при отключении форсунки. Транзистор оптопары T1, эммитером подключен к "-" питания, а коллектор — к выводу PD3/INT1 микроконтроллера. На выводе PD3/INT1, через резистор R2, формируется логическая «1». При открытии форсунки, через открытый транзистор оптопары, на PD3/INT1 появляется лог. «0». Вывод PD3/INT1 — это вход внешнего прерывания. Вход настроен таким образом, что прерывание происходит по любому изменению сигнала, то есть при изменении сигнала с лог. «1» на лог. «0» или при изменении сигнала с лог. «0» на лог. «1»

Текстовый дисплей подключен по 4 битной схеме, когда обмен данными происходит «полубайтами». Итого, для управления дисплеем, нам необходимо 4 линии шины данных и 3 управляющих линии, то есть всего 7 линий. Для этого отлично подходят оставшиеся выводы порта D (PD0-PD2, PD4-PD7).

На вывод «3» текстового дисплея, через делитель собранный на резисторах R4, R5, подается напряжение регулировки контрастности дисплея. Выводы 4, 5, 6 (RS, R/W, E соответственно) предназначены для подачи на дисплей управляющих команд, линии 7-10 при подключении в 4 битном режиме, для исключения повреждения дисплея, «садятся на массу». Линии 11-14 служат для передачи данных. Более подробную информацию можно найти в документации к дисплею. Вот тут кратко и достаточно понятно.

Остальная, не рассмотренная часть схемы — источник тактовых импульсов, собранный на кварцевом резонаторе Qz1 и конденсаторах C1 и C2, а так же включенный по типовой схеме интегральный стабилизатор на 5 В. Можно использовать К142ЕН5 или импортный 7805.

Ну вот вроде и вся нехитрая схема. Конечно, схема устройства простая, но в устройстве на микроконтроллере важна конечно не схема, а программа.

Коротко опишу действие программы, более подробное описание вы сможете прочитать уже в другом материале.

После включения устройства, выполняется подпрограмма инициализации дисплея, на дисплей выводятся заголовки и сохраненное значение суммы из EEPROM. Затем происходит выполнение бесконечного цикла в режиме ожидания прерывания. При возникновении прерывания по заднему фронту, обнуляется внутренний таймер (запуск счета времени). После того как прошел передний фронт, выполняется алгоритм суммирования результата и если нужно, его усреднения. После усреднения производится вывод информации о средней длительности импульса за последние 20 тактов и о суммарной длительности с момента включения. Примерную программу можно посмотреть здесь или скачать, примерная прошивка — тут. Почему примерная? Потому что при появлении времени я периодически дорабатываю программу и иногда схему устройства (сейчас, например, добавлена кнопка сброса сохраненных данных).

Источник
technik 22.12.2009 в 21.57 (обновлен 22.12.2009 в 21.58) комментарии 0 0

комментарии(0)

Комментировать

Для добавления комментария авторизируйтесь.
Последние комментарии:
© 2012 pobot.ru