Представляю очередную поделку на Ардуино УНО или ее клоне - цифровой тахометр для автомобиля.
Всем известно что, сердце каждого автомобиля это -мотор , ну или двигатель, кому как удобнее
Чтобы продлить срок службы двигателя автомобиля необходимо соблюдать режимы его эксплуатации, в частности - необходимо следить за оборотами двигателя, не трогаться и не переключать передачи на пониженных оборотах, так и не давать чрезмерно высоких оборотов. Нормальное число оборотов при эксплуатации двигателя 3000- 5000 об.в минуту.
Для холостого хода это значение обычно 700 - 1000 об. в минуту.
Для индикации и отображения кол-ва оборотов двигателя во многих автомобилях есть ТАХОМЕТР на панели приборов, а в некоторых его нет
Так получилось в моей жизни, что в моем автомобиле, автомобиле супруги , автомобиле моего отца тахометра то и не оказалось.
В место тахометров установлены часы
Я решил исправить этот недостаток и сделать цифровой тахометр на любимой АРДУИНКЕ
Главные требования к самодельному тахометру были следующие:
1. Надежность.
2. Экономичность.
3. Точность.
4. Питание от бортовой сети автомобиля.
5. Малое энергопотребление.
6. Широкий диапазон рабочих температур.
Ардуино УНО как раз подошла по этим критериям , очень надежная (если соблюдать режимы эксплуатации и производить правильный расчет обвески), самая недорогая, и впритык подходящая(по количеству портов ввода-вывода) для реализации на ней тахометра.
К тому же , собирать мне необходимо не один а сразу 3 тахометра, во все наши семейные автомобили
Итак решено, сказано сделано.
Если с контроллером оказалось все понятно, то с выбором остальных элементов пришлось помозговать
Датчик.
Долго думал , что же взять в качестве датчика съема данных об оборотах двигателя с самого двигателя, так как о бортовом компьютере оставалось только мечтать, в этих автомобилях его попросту нет
Индукционный съем данных.
Некоторые изобретатели снимают данные об оборотах с катушки зажигания, с кабелей свечей, индукционным способом.Этот способ мне изначально не понравился, так как я посчитал, что информация снимаемая индукционным способом с высоковольтных проводов зажигания может попросту когда нибудь вывести из строя контроллер, если высокое напряжение пробьет изоляцию. Изоляция кабелей зажигания периодически пробивается напряжением, так как после многолетней эксплуатации попросту рассыхается, лопается и в ней появляются микротрещщены. В общем, этот способ мне показался не очень надежным и качественным.
Стробоскопический съем данных или оптический, с прерыванием луча.
Кто то использует оптические датчики, они надежные , стабильные, помехо-устойчивые, в них исключена возможность дребезга сигналов, но есть один очень большой минус -
это абсолютная чистота приемника, передатчика, и среды между ними. Они очень сильно боятся грязи и пыли, а под капотом автомобиля чего только нет, там и масло, отработка, пыль, грязь, и даже выхлопные газы.
К тому же, фото диоды и ИК диоды изготавливают целиком из пластика, то есть прозрачный корпус он же и линза полностью пластиковые, а пластик, как известно плохо ведет себя при низких температурах, мутнеет, трескается.
Поэтому этот вид датчика мне тоже оказался не по душе.
Магнитный съем данных.
Магнитный способ съема данных , бесконтактный, то есть датчик находится на расстоянии от магнита примерно от 1-3 см, абсолютно не требует чистоты среды вокруг себя, так как никаких оптических лучей он не излучает и не принимает, высокочастотный , поддерживает очень большие частоты , так же как и оптический, но только при использовании специального датчика магнитного поля - полупроводниковый датчик Холла.
Этот вариант мне приглянулся, но так как кроме герконов у меня ничего не было, а герконы (Герметичный контакт - использует тот же принцип срабатывания от магнитного поля) не могут работать с частотой более 10 Гц, я озадачился поиском датчиком Холла, ведь это достаточно редкая вещь и среди всякого радио-электронного хлама ее не найти. Но благо есть в Калининграде магазин электроники , где продают контроллеры , разные платы расширения и почти любые датчики (телефон магазина электроники в Калининграде +7-4012-508-209) Так вот, позвонил, спросил, в наличии датчиков Холла не оказалось но мне предложили купить под заказ, так я и сделал. Заказал датчики Холла аж 5 штук, по очень хорошей цене еще и со скидкой Ждал пару недель, и вот свершилось, звонок из магазина - Здравствуйте, приезжайте и забирайте свои датчики Холла!
Отображение данных об оборотах двигателя.
Осталась еще одна проблема, что же использовать для отображения данных об оборотах двигателя???
Сначала думал использовать ЖК дисплей, такой же как в своей домашней метеостанции. Заказал , купил, но дисплейчик оказался не рабочий, покупал в интернет магазине, как кота в мешке, и теперь очень жалею, лучше бы купил в Калининградском магазине чуть дороже, но зато гарантированно и обменять в случае чего можно было бы. После неудачной покупки ЖК дисплея, руки уже было опустились, пока не наткнулся в своем хламе электроники на светодиодный цифровой дисплей от старого телефона с АОН Русь 27 плюс. После недолгих размышлений я решился попробовать применить именно его. Светодиодные матрицы в нем были по 3 блока цифр, по 3 матрицы па плате. Для отображения данных об оборотах двигателя вполне достаточно 3 цифр , то есть тысячи, сотни, десятки оборотов в минуту без единиц. Да и к тому же, цифровых выводов у Ардуино Уно как раз хватает для подключения 3-х семисегментных индикаторов при использовании принципа частотной коммутации общих катодов. Такая технология позволяет сократить число используемых выводов в разы. Все сегменты в таких матрицах запараллелены, а общие выводы нет. Таким образом, при подаче управляющих сигналов на выводы сегментов и подаче массы на один общий вывод одного числа, это число отобразится, при подаче массы на другой общий вывод, другого числа, отобразится цифра в другом сегменте матрицы. При частотном переключении общих выводов мы можем отображать разные цифры на разных сегментах матрицы. Кому интересно можете погуглить в интернете - частотное управление семисегментными индикаторами.
Сборка.
Итак, все элементы будущего тахометра выбраны, определены и найдены приступаем к сборке.
Первым делом занялся поиском библиотеки для управления светодиодным индикатором, таковых в сети оказалось великое множество. Но при испытании нескольких библиотек я решил, что лучше создать свою. Подсмотрел принципы в чужих библиотеках , добавил свое, и вышла очень даже неплохая и стабильная библиотека управления семисегментным индикатором, причем при включении его без дополнительных транзисторов. (это важно для удешевления конструкции) Ардуинка очень хорошо справлялась с моим кодом, загрузка памяти контроллера библиотекой всего 20%. Но цифровые выводы задействовались все под чистую, для 4-х блоков цифр. В Ардуине всего 11 цифровых выводов которые можно использовать для подключения и выдачи логических данных. 7 из них ушли для подключения запараллеленых сегментов, 3 для подключения общих катодов, и 1 я решил использовать для подключения отдельного светодиода индикации высоких оборотов, как в качестве экономайзера Если число оборотов двигателя выше 3500 об.в мин. загорается предупреждающий светодиод .
Так как цифровых выводов больше не осталось, датчик Холла я подключил к аналоговому входу, коих в Ардуине Уно аж 6 шт. Жаль только, что аналоговые входы никак нельзя использовать для управления светодиодами
Ну да ладно, нет так нет, в конце концов можно было взять Ардуину МЕГА, а там цифровых входов/выходов огромнейшая куча, но это уже получится далеко не бюджетный вариант, да и как то жалко будет МЕГУ использовать в качестве тахометра, та уже вполне сможет потянуть на полноценный бортовой компьютер.
Выкладываю фото самодельного цифрового тахометра для автомобиля: