Главная » Электроника для авто
Призовой фонд
на июль 2017 г.
1. Осциллограф DSO138
Паяльник
2. Регулируемый паяльник 60 Вт
Паяльник
3. 200 руб.
От пользователей

Часы - Тахометр - Термометр - Вольтметр на базе МК 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.

Печатная плата двухсторонняя и разведена под комплектующие в 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 С контроллером KS0108Поиск в FivelВ блокнот
U1 МК AVR 8-бит
ATmega16
1 Корпус TQFP-44Поиск в FivelВ блокнот
U2 Часы реального времени (RTC)
DS1307
1 Корпус SO-8Поиск в FivelВ блокнот
U3, U4 Датчик температуры
DS18B20
2 Поиск в FivelВ блокнот
U5 Линейный регулятор
L7805AB
1 L7805AB2TПоиск в FivelВ блокнот
U6 Вентиль
CD4093B
1 Поиск в FivelВ блокнот
Q1, Q2 Биполярный транзистор
PMBS3904
2 Поиск в FivelВ блокнот
D1, D3 Стабилитрон
BZV55C4V7
2 Поиск в FivelВ блокнот
D2 Диод Шоттки
SK24
1 Поиск в FivelВ блокнот
X1 Кварцевый резонатор32.768 кГц1 Поиск в FivelВ блокнот
X2 Кварцевый резонатор12 МГц1 Поиск в FivelВ блокнот
R1 Резистор
30 кОм
1 Все резисторы SMD 1206Поиск в FivelВ блокнот
R2, R6, R10 Резистор
10 кОм
3 Поиск в FivelВ блокнот
R3-R5 Резистор
4.7 кОм
3 Поиск в FivelВ блокнот
R7 Резистор
470 кОм
1 Поиск в FivelВ блокнот
R8 Резистор
47 кОм
1 Поиск в FivelВ блокнот
R9 Резистор
15 кОм
1 Поиск в FivelВ блокнот
R11 Резистор
12 кОм
1 Поиск в FivelВ блокнот
R12, R14 Резистор
1 кОм
2 Поиск в FivelВ блокнот
R13 Резистор
22 Ом
1 Поиск в FivelВ блокнот
R15 Резистор
200 Ом
1 Поиск в FivelВ блокнот
R16 Резистор
100 кОм
1 Поиск в FivelВ блокнот
R17 ФоторезисторGL5516 (500кОм)1 Поиск в FivelВ блокнот
RV1 Подстроечный резистор10кОм1 Поиск в FivelВ блокнот
C1 Конденсатор1 мкФ1 SMD 0805, кроме С5-С6Поиск в FivelВ блокнот
C2-C4, C7, C8, C12 Конденсатор0.1 мкФ6 Поиск в FivelВ блокнот
C5 Танталовый конденсатор47мкФ х 16В1 Поиск в FivelВ блокнот
C6 Танталовый конденсатор33мкФ х 6.3В1 Поиск в FivelВ блокнот
C9, C10 Конденсатор22 пФ2 Поиск в FivelВ блокнот
C11 Конденсатор0.33 мкФ1 Поиск в FivelВ блокнот
Кнопка тактоваяIT-1102w2 Поиск в FivelВ блокнот
LS1 Излучатель звуковойKC-12011 Поиск в FivelВ блокнот
BAT1 БатарейкаCR20321 Поиск в FivelВ блокнот
Держатель для батареекCR-20321 Поиск в FivelВ блокнот
Добавить все

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

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

Теги:

Опубликована: Изменена: 10.04.2015 0 15
Я собрал 0 8
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.8 Проголосовало: 8 чел.

Комментарии (206) | Я собрал (0) | Подписаться

+1
Vitalino #
Вам тогда стоит уделить внимание статье "модернизация бортового пк" этого же автора. Вам должно подойти.
Ответить
0
Oleg #
Можно ли сбросить не правильно выставленное значение ДУТ или заново прошиваться?
Ответить
0

[Автор]
u33 #
Что за неправильно выставленное значение ДУТ?
Ответить
0
Oleg #
Записал значение место 6 литров в 7. Спасибо
Ответить
0

[Автор]
u33 #
Новые значения записываются поверх старых. Ничего перепрошивать не надо.
Ответить
0
Oleg #
Это понятно. Емкость бака 6 литров! А прочерки на 7 литров поставить обратно невозможно. Извините что изначально неточно описал проблему.
Ответить
0

[Автор]
u33 #
Есть 2 способа.
1. Стереть EEPROM и откалибровать заново.
2. Выставить на 7 литрах значение ADC больше или меньше (в зависимости от типа ДУТ), чем на 6 литрах. Как вариант, можно отключиться от выхода ОУ и подать на вход ADC1 либо VCC (ADC=1023), либо GND (ADC=0).
Ответить
+1
Oleg #
GND (ADC=0) Спасибо за вашу разработку. Просто замкну датчик и запишу это значение так как остаточное сопротивление датчика несколько ом 7 литров выводится не будут. Спасибо.
Ответить
+1
Елена #
Отличное устройство! Дисплей стал как родной в vectra b. Автору спасибо за работу. Собрана схема с ДУТ. На авто есть на диагностическом разьеме уровень топлива в баке ( напряжение изменяется в пределах 0-12V в зависимости от количества топлива в баке). Вопрос- можно ли взять этот сигнал и через делитель подавать на вход контроллера? Если правильно понимаю, то на входе должно быть напряжение в пределах 0-5V. Заранее спасибо за помощь.
Ответить
0

[Автор]
u33 #
Спасибо большое за отзыв!
Да, на входе должно быть 0-5V, через делитель можно.
Ответить
0
Роман #
Добрый день, я уже писал, Вам, ранее о том, что часы не хотели запускаться... Я на время забросил устройство, но теперь снова взялся за него. Сделал новую печатку под диповскую мегу, все красиво прошилось проблем никаеих, все отображается, но часы так и не пошли, в связи с этим вопрос - не может этого быть из-за того, что дисплей на контроллере S6B0108? Буду благодарен за ответ..
Ответить
0
RomikBOG #
Провел, сегодня эксперимент: в приборе стояла схемка часов VS1307, а поставил DS1307 и о чудо часы запустились, но вот какая петрушка: если в меню поменять датчики местами часы ити перестают, вот что может быть?
Ответить
0

[Автор]
u33 #
Попробуйте перепрошить МК, предварительно стерев flash и eeprom.
Ответить
0
Vlad_Nic #
Вопрос к Vitalino, удалось ли запустить с дисплеем JXD12864А. У меня такой же LCD, мерцания нет но отображает показания температуры, напряжения те которые в момент включения, далее показания не меняются. Показания оборотов в порядке, на кнопки реагирует (часы, минуты выставляются)
Ответить
0
Vitalino #
Нет, у меня запустилось устройство только с другим дисплеем(на ks0108). А этот экран либо у меня бракованный либо не совместимый.
Ответить
0

[Автор]
u33 #
А часы идут?
Ответить
0
Vlad_Nic #
Часы наверное не идут судя по индикации, но на кварце генерация есть, завтра подключу часы к ардуине посмотрю на результат. В Proteus игрался с часами случай похожий.
Ответить
0

[Автор]
u33 #
Когда запустятся часы, измерения температуры и напряжения будут нормальными: напряжение - 1 раз в секунду, температура - 1 раз в 5 секунд.
Ответить
0
Алексей #
Можно ли увеличить емкость бака до 100 литров? И можно ли уменьшить значение максимальных оборотов до 6000? Собираюсь поставить в катер.
Ответить
0

[Автор]
u33 #
Можно. Если интересует, за небольшое вознаграждение сделаю. Напишите в ЛС.
Ответить
0
руня #
Будет ли работать с дисплеем на Контроллере: ST7920?
Ответить
0

[Автор]
u33 #
Нет.
Ответить
0
руня #
А с дисплеем на Контроллере S6B0108?
Ответить
0

[Автор]
u33 #
S6B0108, если я не ошибаюсь, является аналогом KS0108.
Ответить
0
eoneforever #
Возможно повторить человеку паявшему только smd5050 светодиоды? Если с помощью знатоков?
Ответить
0

[Автор]
u33 #
Если есть трудности с пайкой SMD, то посмотрите, - где-то в комментариях выкладывались печатные платы для DIP компонентов.
Ответить
0
Антон #
А каким программатором прошивали микросхему?
Ответить
0

[Автор]
u33 #
USBasp
Ответить
0
Сергей #
Уважаемый автор, можно ли подкорректировать прошивку на обороты от 600-2500 оборотов (т.е шкалу)? Нужна на дизельный двигатель.
Ответить
0
Алексей #
Уважаемый автор, можно ли применить дисплей Goodview LCD JXD12864А BLW с контроллером AIP31107?
Ответить
0

[Автор]
u33 #
На сайте производителя указано, что контроллер KS0107.
Ответить
+1
Валерий #
Спасибо автору за отличный проект. Реально лучший универсальный БК из всех что встречал. Интересует только возможно ли собрать прошивку под два датчика топлива, газ - бензин? Это было бы вообще супер.
Ответить
0
руня #
Здравствуйте! Автор подскажите собрал ваш борт компьютер по вашей печатке и с таким дисплеем. Вроде бы работает но картинка на дисплее сдвинута перепробовал все прошивки на всех одно и тоже, что это может быть?
Прикрепленный файл: SAM_1175.JPG
Ответить
0
Vitalino #
У вас перепутаны выводы на дисплее. Поменяйте и половинки станут на свои места.
Ответить
0
руня #
С дисплеем разобрался спасибо! Но вот часы не хотят работать, при отключении питания перестают идти приходится отпаивать кварц и заново припаивать, тогда только начинают работать пока опять не выключу питание и все повторяется заново!
Ответить
+1

[Автор]
u33 #
Проверьте контакт м/с часов с батарейкой и исправность часового кварца.
Ответить
0
руня #
Контакт с батарейкой нормальный проверял! Может кварц от перегрева когда припаиваю плывет?
Ответить
0

[Автор]
u33 #
Все может быть. Возьмите другой кварц.
Ответить
0
maxim #
Доброго дня. Может сможете вспомнить какие конкретно контакты были перепутаны? У меня та же картинка со смещением и все уже перепроверил - не могу понять.
Ответить
0

[Автор]
u33 #
CS1, CS2.
Ответить
0
Oneill23 #
Здравствуйте. Уважаемый автор. Что может быть не так, прошился прошивкой из архива, пробовал разные и показывает неизвестно что, может быть дисплей не тот? Прошивал AVRDUDEPROG , фьюзы ставил инверстно.
Прикрепленный файл: IMG_20160404_211401.jpg
Прикрепленный файл: IMG_20160404_211633.jpg
Прикрепленный файл: IMG_20160404_212717.jpg
Ответить
0

[Автор]
u33 #
Попробуйте прошивку и фьюзы из моего комментария от 27.06.2015 15:40 - как будет себя вести устройство?
Ответить
0
Oneill23 #
Кажется не получится у меня проверить прошивку пока не поменяю контролер, во время перепрошивки произошла какая та ошибка теперь контролер не прошивается, не стирается, не читается.
Ответить
0
Сергей #
Есть у кого нибудь печатки с измерением топлива?
Ответить
0
руня #
Ищи на первой странице пост Alesashka 14.07.2015 22:58 #
Ответить
0
Сергей #
Подскажите что может быть, часы работают только с внешним питанием при отключении питания ход останавливается, но часы показывают время до отключения.
Ответить
0
Сергей #
Вопрос закрыт, решилось заменой ds1307
Ответить
0
Валерий #
Подскажите пожалуйста. Собрал БК с измерением топлива. Все запустилось и заработало с полтыка. Но я хочу настроить прибор индикацию литража газа. У меня на баллоне стоит точный трехконтактный датчик уровня (WPGH-1), с сигнального провода которого выходит напряжение от 1,8 до 4.6 В, соответственно - пустой полный бак. Нужно ли мне подключать этот провод к операционнику, или прямо цеплять на вход контроллера, минуя операционник?
Ответить
+1

[Автор]
u33 #
С такими напряжениями на датчике топлива - можно сразу на вход. Только не забудьте оставить R6, D1 и C13.
Ответить
+1
Виктор #
Отличный прибор. Очень хотелось бы версию прошивки с выходом для управления нагрузкой по датчику температуры. Нужно для дизельного двигателя при низких температурах или для управления вентилятором охлаждения. Закупаю детали буду собирать.
Вчера закончил свой девайс, твердотельное реле управления свечами накала дизельного двигателя. С зависимость времени от температуры, если кому надо выложу схему и прошивку.
Ответить
0
boba.s #
Интересно!
Ответить
0
boba.s #
Вопрос автору: у меня вывод тахометра идет с обмотки генератора. Как быть в такой ситуации. Возможно ли переделать шкалу тахометра в температуру двигателя?
Ответить
0

[Автор]
u33 #
Если бортовая сеть 12 вольт, то попробуйте подключить вход датчика вращения коленвала к этому выводу. Для 24-х вольтовой нужно пересчитать номиналы R11, R16. Шкалу тахометра переделать могу за небольшую оплату. По этому вопросу пишите в ЛС.
Ответить
+1
algogon #
Уважение автору! Этот прибор у меня на катере прекрасно работает. Могу пожелать ему творческих успехов. Спасибо!
Ответить
+1
atweaker #
Автору глубокое уважение! И спасибо за проделаную работу!
Я собрал ваш прибор, U33, и хочу задать следущий вопрос: для того, чтобы уменьшить уровень подсветки в ночное время нужно программный код переписать (ну там частоту сигнала на PD7 понизить) или есть другой способ? Не хотелось бы увеличивать R13 (R13 ограничивает ток на подсветку при 22 омах на 250мА) - ведь тогда и дневной режим "потускнеет".

Сам я собрал по вашей схеме, используя ваш лайоут и от Alesashka (уже не помню что где заимствовал), но изменив размер смд-компонентов на не менее 1206. Протравил, спаял, подправил сразу пару ошибок (по размеру и расстоянию смд).
Прикрепленный файл: U33_smd1208.lay6
Ответить
0

[Автор]
u33 #
Спасибо за отзыв!
Да, уменьшать уровень яркости ночной подсветки нужно программно. По этому вопросу напишите в ЛС.
Ответить
0
Роман #
U33_smd1208.lay6 в плате сеть ошибки, не задействован контакт МК и ДУТ, может есть рабочая плата?
Ответить
0
atweaker #
Вы правы, закрался лайут от старой версии... Навел порядок на компе... Вот, актуальная в железе и к ней документация (порты атмеги правильно назначены и печатки с деталями и номиналами).
Прикрепленный файл: Doku_SMD1206.pdf
Прикрепленный файл: U33_smd1206.lay6
Ответить
0
starelvis #
Отличная работа, но пока не начали реализовывать есть замечания или недопонимания:
1. Упущен конденсатор С5 на 47мкФ и установлен вместо 0,1мкФ - 0,33мкФ на ноге 12в регулятора 7805.
2. Непонятна реализация датчика тахометра с сигнальными проводами + и -. Есть пример решения.
3. Конденсатор С12 отсутствует, хотя есть конденсатор на втором контакте фоторезистора GL5516
4. Добавили сигнал поворотников и сохранили датчики температуры или наоборот... прошивкой поделитесь?
Ответить
0
atweaker #
1. смд вариант от L78M05 стабилизируется на входе 0,33µF, а на выходе 0,1µF (как в датащите). Коденсатор C6 оставляем для сглаживания напряжения.
2. сигнал тахометра ожидает стандатрный меандр (это +) около 4,5 вольт и массу авто/датчика (это минус). Сажает, все что выше через D3 на 4,7 вольт.
3. Фоторезистор не нуждается в сглаживании - так быстро свет / уровень яркости не мерцает. Но можете добавить (или скачать версию ниже).
4. "Стрелки поворотников" автор реализовал сам, читайте внимательней шапку темы. Я добавил только диоды на второй сигнал (у автора один), чтобы сигналы не смешивались. И прошивка тоже его (+izmerenie-ostatka-topliva.rar) в шапке.
Отредактирован 20.12.2016 19:04
Прикрепленный файл: DokuSMD1208new.pdf
Прикрепленный файл: U33_smd1206new.lay6
Ответить
0
starelvis #
1.Принято
2.общий провод "-" питания платы он же масса авто. не критично.
3.Принято
4.Из описания автора "...Индикация указателей поворота удалена, а фоторезистор теперь подключен на PD0 ..." поэтому и возникает вопрос реализации в прошивке и как будет это выглядеть? )
Ответить
+1
atweaker #
Ну да, все правильно, по четвертому пункту я вас просто недопонял. Платина была изначально без ДУТ, но с поворотниками... потом долеплял в Спринте ДУТ и не стер диоды (для поворотов, забыл и протравил). А на табло и показывает только уровень топлива, как автор прошивки (последней) и указал. Надеюсь теперь все прояснили :).
Ответить
+1
Виктор #
Автору спасибо за устройство. Как отредактировать прошивку, чтобы показывало больше 8000 оборотов?
Ответить
0
atweaker #
Привет, по вопросам прошивки - это к автору в личку. (ткните на профиль от U33)
Ответить
0
Егор #
Не могу понять что прошивать: Flash или eeprom?
Ответить
0
am200566 #
Прошивать нужно Flash память.
Ответить
«12
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Тестер ESR, полупроводников, резисторов, индуктивностей
Тестер ESR, полупроводников, резисторов, индуктивностей
AVR-программатор USB ASP Макетная плата для пайки (10 шт)
вверх