Идея “втулить” arduino во что то наше отечественное, всем привычное, пришла случайно. Мой коллега и друг очень заядлый автомобилист, любитель делать все своими руками, несмотря на цену и главное не такое как у всех. Вот и в этот раз решил в свой жигуль вместо родной панели поставить от опеля, но тут появилась проблема состыковки датчиков отечественной машины с немецкой техникой. Проблема заключалась в том что не получалось подключить датчик топлива и температуры. После совмесных размышлений на тему дорого и сложно и стандартные приборы или что-то новое чего нет у никого, мы пришли к выводу лучше дорого и сложно.
К нашему устройству были выдвинуты следующие требования:
- измерение количества топлива(индикация в процентах);
- измерение температуры двигателя за бортом (или в салоне);
- измерение напряжения бортовой сети;
- вывод времени и даты;
- тревожный сигнал при выходе за установленные нормы показателей приборов:
- если уровень топлива меньше установленного;
- если температура двигателя или в салоне выше указанной;
- если напряжение бортовой сети ниже или выше указанных;
- тревожный сигнал на выбор: или мигаем светодиодом и подается звуковой сигнал, или только светодиод(вдруг водитель нервный);
- запоминание всех настроек после выключения питания, так как включается оно от зажигания.
За основу был взят микроконтроллер Atmega328-PU, кварц 16MHz. Для вывода всей нужной информации был заказан дисплей 16*4 (сейчас жалею о том, что неподключал дисплей через I2C, было бы больше выводов для других полезных идей), микросхема времени DS1307 и кварц 32678Hz, два датчика DS18B20, несколько резисторов, клемников под отвертку, пару кнопок, переменный резистор, кусок текстолита и много терпения.
В самом скетче в принципе нет ничего сложного. Измерение температуры, вывод времени или измерение напряжения. Обо всем этом много написано и переписано и ничего нового я не придумал просто соединил. Настройка установок осуществляется двумя кнопками и резистором (если кто читал мою статью “контролер для аквариума” то принцип тот же). Первая кнопка служит выбором параметра настроек, а вторая для запоминания. Для настройки нажимаем “ВЫБОР” на дисплее появляется DATA AND TIME и строкой ниже minute, резистором выбираем нужное значение и нажимаем опять “ВЫБОР”, устанавливаем так же час, день, месяц, год и после установки года нажимаем “ВЫБОР” и на дисплей выводится время и дата и если все правильно, и мы хотим это сохранить, нажимаем кнопку “ПАМЯТЬ”, после чего на дисплей выводится информация о успешном запоминании.
Все выглядит немного сложно, но если нужно изменить настройки постоянно приходилось бы настраивать время, а отдельно выводить кнопку для настройки время это минус лишний вывод да и на панеле машины лишняя кнопка не к чему. Дальше идет установка порога температур (при которой будет звучать сигнал тревоги), сначала двигателя потом в салоне. Если мы хотим изменить эти параметры выставляем нужную нам температуру и нажимаем кнопку “ПАМЯТЬ”, в противном случае жмем кнопку “ВЫБОР” и переходим к настройке верхнего и нижнего порога напряжения бортовой сети. Все происходит аналогично, после чего настройка количества топлива. Если уровень падает ниже указанного нами , тоже звучит предупреждающий сигнал. И, на конец, выбор сигнала тревоги, то есть звук включен или нет ( просто мигает светодиод). Чтобы просмотреть все настройки нажимаем кнопку “ПАМЯТЬ”(если устройство в нормальном режиме и не производятся настройки) и попорядку на дисплей выводятся все параметры.
Забыл добавить самая нижняя строка (на просьбу владельца) показывает время с момента включенния зажигания.
Питается устройство через стабилизатор 7805 и по причине приличного нагревания пришлось привинтить радиатор и сделать его отдельной платкой. Спаяли, “собрали на коленке” все работает, теперь будем експирементировать в реальных условиях в машине. Основной проблемой, как мне кажется, будет добиться правильных показаний датчика топлива и борьба с помехами бортовой сети, но будем стараться довести все до успешного конца.