Часы — Тахометр — Термометр — Вольтметр на базе МК ATmega16 и графического дисплея LCM12864

Хочу поделиться схемой прибора, включающего в себя функции:

  • индикации текущего времени
  • измерения температуры двигателя и окружающего воздуха 
  • измерения напряжения бортовой сети (со шкалой) 7 — 16В
  • измерения частоты вращения коленчатого вала двигателя (со шкалой) 900 — 8000 об/мин
  • позже была добавлена функция измерения уровня топлива 0 — 70 литров

Проект разрабатывался как дополнительное измерительное оборудование на мокик китайского производства, но может быть установлен так же и в автомобиль в качестве бортового «миникомпьютера», особенно если использовать дисплей с синей подсветкой, как на фотографии ниже — выглядит очень красиво. Так же устройство имеет дополнительные функции, такие как

  • автоматическая смена яркости подсветки дисплея в зависимости от внешнего освещения

звуковые и визуальные: 

  • индикация включенных указателей поворота
  • предупреждение о низком уровне заряда аккумулятора 
  • предупреждение о перегреве двигателя 

настройки:

  • программная калибровка вольтметра
  • установка порога предупреждения о перегреве двигателя (80 — 125°C)
  • установка порога предупреждения о низком уровне заряда аккумулятора (10.0 — 12.5В)
  • возможность поменять показания датчиков температуры местами, т. к. используются два DS18B20 на шине 1-wire
  • установка значения «импульс/оборот» для тахометра (1 — 6)
  • в прошивке с измерением уровня топлива — калибровка ДУТ

Схема построена на базе микроконтроллера ATmega16(A), вывод информации осуществляется на графический дисплей LCM12864C. Можно использовать любые, разрешением 128х64 точек с контроллером KS0108/KS0107 и совместимые с ними, но при этом особое внимание следует уделить расположению выводов, потому что у разных производителей оно различается.

Датчики температуры и м/с часов реального времени подключены к МК по стандартным схемам. На входы АЦП ADC0 и ADC1 поступают напряжения с делителя R1-R2 для измерения напряжения бортовой сети, и с R17-R7 для измерения уровня освещенности. Подстроечником RV1 устанавливается контраст LCD. Управление яркостью подсветки осуществляется с помощью ШИМ через транзистор Q1 — яркость имеет 2 уровня (100 и приблизительно 60%). На транзисторе Q2 собран усилитель звука. PD5 микроконтроллера через делитель R9-R6 подключается к среднему выводу переключателя указателей поворотов. Наглядно это показано на схеме мопедов китайского производства, находящейся в прикрепленном архиве. Там же показана точка подключения входа сигнала с датчика вращения коленвала. Для обработки этого сигнала применен триггер Шмитта (CD4093). Питание элементов схемы осуществляется через линейный стабилизатор напряжения 7805 (U5). Предусмотрена защита от переполюсовки на диоде Шоттки D2.

Печатная плата 2-хсторонняя и разведена под комплектующие в SMD исполнении. Микросхема CD4093 в DIP корпусе, впаяна поверхностным монтажом, потому что не было в наличии этих м/с в SMD. Файл платы с подписанными компонентами прилагается.

 

Для удобства прошивки микроконтроллера в корпусе TQFP-44 предусмотрен разъем ISP для внутрисхемного программирования. Фьюзы выставляются на работу МК от внешнего кварцевого резонатора:

Дисплей и плата помещены в подходящий корпус:

 

Управление осуществляется всего двумя кнопками, они располагаются на отдельной небольшой плате.
В основном режиме кнопкой HR/SEL устанавливаются часы, кнопкой MIN/+/OK — минуты. Чтобы попасть в меню настроек, нужно включить устройство с зажатой кнопкой HR/SEL:

Той же кнопкой выбираем нужный пункт. Калибровка вольтметра. Здесь производится программная калибровка показания вольтметра. Мультиметром измеряем напряжение питания устройства и выставляем кнопкой MIN/+/OK точно такое же. Двигатель перегрет. Устанавливается порог температуры предупреждения о перегреве двигателя. Аккумулятор разряжен. Устанавливается напряжение, ниже которого устройство будет сообщать о разряде аккумулятора. Поменять показания датчиков температуры местами на дисплее удобно, если они вследствие порядка своих серийных номеров оказались расположены наоборот. Просто в этом пункте жмём MIN/+/OK — показания датчиков сразу же меняются местами. Импульс/оборот. Устанавливается количество импульсов за один оборот коленвала двигателя. Все установленные настройки, за исключением смены датчиков, сохраняются при нажатии кнопки MIN/+/OK в выбранном пункте «Сохранить и выйти«, после чего появляется основной экран.

Во время эксплуатации, при переходе температуры дв. и/или напряжения акк. через установленные пороги, начинает мерцать соответствующий параметр на дисплее и 1 раз в 2 секунды раздаётся звуковое предупреждение. При включении указателей поворота, в такт с работой прерывателя, слева от часов мигают стрелки, и раздается звуковой сигнал. Если функция индикации указателей поворота не нужна, то можно выбросить из схемы D1 и R6, R9 нужно подключить к VCC. Также при отсутствии необходимости в автоматической смене яркости подсветки LCD, нужно исключить из схемы R17 и R7, а вывод PA1 микроконтроллера (BR_SENS) нужно подтянуть через резистор 10 -15кОм к VCC, если нужен максимальный уровень яркости, или к GND, если требуется пониженная яркость. Датчик температуры двигателя подключается к устройству с помощью экранированного кабеля.

В прикрепленном архиве находятся прошивка и фьюзы для микроконтроллера, проект Proteus, печатная плата в формате Sprint Layout, схема подключения входа сигналов поворотников и тахометра, схема устройства.

25.02.2015 Добавлена прошивка 12864_600-8000rpm.hex с измерением частоты вращения коленвала от 600 об/мин.

28.02.2015 Добавлена прошивка 12864_600-8000rpm+.hex . Поправлена библиотека дисплея, что позволило расширить список используемых дисплеев с контроллером KS0108/KS0107 от разных производителей.

11.04.2015 В статью добавлен архив «+измерение остатка топлива.rar» со схемой и прошивками для устройства с новой функцией — измерения уровня топлива.


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

LCD1
LCD-дисплейLCM12864C1
С контроллером KS0108U1
МК AVR 8-битATmega161
Корпус TQFP-44U2
Часы реального времени (RTC)DS13071
Корпус SO-8U3, U4
Датчик температурыDS18B202
U5
Линейный регуляторL7805AB1
L7805AB2TU6
ВентильCD4093B1
Q1, Q2
Биполярный транзисторPMBS39042
D1, D3
СтабилитронBZV55C4V72
D2
Диод ШотткиSK241
X1
Кварцевый резонатор32.768 кГц1
X2
Кварцевый резонатор12 МГц1
R1
Резистор30 кОм1
Все резисторы SMD 1206R2, R6, R10
Резистор10 кОм3
R3-R5
Резистор4.7 кОм3
R7
Резистор470 кОм1
R8
Резистор47 кОм1
R9
Резистор15 кОм1
R11
Резистор12 кОм1
R12, R14
Резистор1 кОм2
R13
Резистор22 Ом1
R15
Резистор200 Ом1
R16
Резистор100 кОм1
R17
ФоторезисторGL5516 (500кОм)1
RV1
Подстроечный резистор10кОм1
C1
Конденсатор1 мкФ1
SMD 0805, кроме С5-С6C2-C4, C7, C8, C12
Конденсатор0.1 мкФ6
C5
Танталовый конденсатор47мкФ х 16В1
C6
Танталовый конденсатор33мкФ х 6.3В1
C9, C10
Конденсатор22 пФ2
C11
Конденсатор0.33 мкФ1

Кнопка тактоваяIT-1102w2
LS1
Излучатель звуковойKC-12011
BAT1
БатарейкаCR20321

Держатель для батареекCR-20321
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.