Простой автомобильный вольтметр на простом микроконтроллере.

Простой автомобильный вольтметр на простом микроконтроллере.

«...Однажды, в студёную зимнюю пору...»

Как-то раз, одним январским днём не завёлся мой автомобиль и причиной оказались разряженные аккумуляторы (у меня их два). Отчего разрядились аккумуляторы, для меня было загадкой, но первым делом я заподозрил неисправность генератора.

Об исправности генератора можно судить по напряжению бортовой сети автомобиля. Причём отслеживать напряжение нужно не разово, а постоянно, в течение всей поездки (всех поездок) и только потом делать соответствующие выводы. Обычный мультиметр для таких целей малопригоден, т.к. нужен стационарный вольтметр. Для этих целей и был быстренько сделан вольтметр на простом («малоногом») и легкодоступном микроконтроллере со встроенным АЦП и на не менее доступном китайском ж/к индикаторе типа 1602, совместимом с системой команд контроллера HD44780 (фирма Hitachi), который стал стандартом «де-факто» в любительской аппаратуре и на рынке цифробуквенных дисплеев. Почти полные аналоги ж/к индикатора: KS0066 (фирма Samsung), SED1278 (фирма Seiko Epson Corp.), ST7066 (фирма Sitronix Technology).

Схема устройства электрическая принципиальная

Сердцем устройства является дешёвый и доступный микроконтроллер PIC12F675 фирмы MICROCHIP на «борту» которого имеется аналогово-цифровой преобразователь (АЦП). Т.к. количество ног микроконтроллера недостаточно для управления ж/к дисплеем, в схеме использован сдвиговый регистр 74HC595A. Использование регистра позволяет задействовать всего 3 ножки микроконтроллера для управления ж/к дисплеем.

Не сказать, что использование простого микроконтроллера совместно со сдвиговым регистром против большого микроконтроллера значительно упрощает схему или процесс разводки печатной платы, но то что такая связка стоит дешевле – это точно, к тому же простой PIC валялся у меня «про запас», а вот большого микроконтроллера, да ещё и с АЦП у меня не оказалось и бежать в магазин за ним не хотелось. Собственно, поэтому и было принято решение использовать в схеме маленький микроконтроллер PIC12F675 в связке со сдвиговым регистром.

Питание микроконтроллера осуществляется от стабилизатора DA1, напряжение на который поступает через защитный диод VD1.

Резисторы R1 и R3 образуют делитель напряжения, выход которого соединён со входом АЦП микроконтроллера. Номиналы резисторов придётся подбирать, что бы обеспечить приёмлемую точность измерений. Для облегчения настройки делителя можно использовать переменные резисторы (желательно многооборотные), либо подбирать номиналы из нескольких резисторов. Т.к. многооборотных резисторов под рукой у меня не оказалось, то делитель я сделал с помощью нескольких составных резисторов, под них и развёл плату. При указанных номиналах предел измерений напряжения составляет 0-20 Вольт, что для большинства автомобилей вполне достаточно. Конденсатор С1 служит для сглаживания импульсных помех.

В главном цикле программы микроконтроллера постоянно считывается показание модуля АЦП. Значение представляет собой диапазон от 0 до 1023 (10 бит). При таких используемых резисторах в цепи делителя напряжения, считанное значение необходимо умножить на 2 и поставить точку после второго разряда.

Для исключения мельтешения постоянно меняющихся цифр на дисплее, вследствие шумов и помех в цепи питания, используется программная обработка показаний АЦП в виде «скользящего среднего» из окна в 8 показаний АЦП. Это даёт стабильное, не прыгающее, показание на дисплее, но минусом такого метода является некоторая инерционность.

Т.к. вольтметр нужен был срочно, а опыта программирования АЦП на ассемблере в микроконтроллерах у меня не было, то исходник программы был написан на языке Си. Конкретно с использованием среды “MikroC Pro for PIC”. Компилятор “MicroC” бесплатный и позволяет компилировать программы с размером кода до 2048 байт (слов), чего вполне достаточно для PIC12F675.

В устройстве, вместо PIC12F675 можно использовать PIC12F683 без каких либо изменений в схеме. Прошивки для микроконтроллеров практически идентичны, основное отличие заключается в большем окне для вычисления скользящего среднего, что заметно влияет на стабильность показаний.

Печатная плата разрабатывалась с учётом тех деталей, которые у меня имелись в наличии, но предпочтение отдавалось SMD монтажу, как наиболее «ленивому». Конденсаторы применялись типоразмера 0805, резисторы – 1206. Полярный конденсатор – танталовый в корпусе case D.

Разводка печатной платы

Резистор R5 необходим лишь в том случае, если на плате LCD модуля отсутствует токоограничительный резистор. В моём LCD модуле он присутствовал, поэтому вместо резистора R5 я впаял перемычку.

На плату выведен разъём типа PLD (вилка угловая) для прошивки микроконтроллера. Прошить микроконтроллер можно любым удобным программатором.

Припаивать ж/к модуль удобно используя разъём типа PLD (вилка).

Печатная плата односторонняя с несколькими перемычками, изготавливается по Лазерно-Утюжной Технологии (ЛУТ) без особых проблем.

Внешний вид собранного устройства представлен на рисунке. Над корпусом устройства ещё предстоит поработать, но на первое время вольтметр был помещён в обычную дешёвую дорожную мыльницу, в которой ножом было прорезано окошко для дисплея.

Фото готового устройства

ВНИМАНИЕ! Подключение устройства необходимо выполнять через плавкий предохранитель с током срабатывания не более 5 Ампер.

На своём автомобиле вольтметр я подключил в гнездо прикуривателя с помощью специального коннектора, в котором встроен предохранитель. Коннектор этот остался от какой-то безделушки.

Схема (SPLAN 7.0), разводка печатной платы (Sprint Layout 5.0), прошивка (HEX) и исходник (С) доступны для скачивания по ссылке.

При использовании материалов с этой странички, приводите ссылку.


[НАЗАД][мои проекты]

Яндекс.Метрика