Текущее время: 19 мар 2024, 09:22

Калининград & ХОББИ

Занятие любимым хобби - это путь к счастливой жизни!

Самодельный цифровой тахометр для автомобиля

Тут собраны схемы различных устройств сделанных на контроллерах Ардуино, Лазерный гравер на Ардуино, Металлоискатель на Ардуино, Метеостанция, Кодовый замок, и множество других устройств и изобретений
Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Самодельный цифровой тахометр для автомобиля

Сообщение -=dp=- » 08 ноя 2014, 22:06

Представляю очередную поделку на Ардуино УНО или ее клоне - цифровой тахометр для автомобиля.

Всем известно что, сердце каждого автомобиля это -мотор , ну или двигатель, кому как удобнее :D
Чтобы продлить срок службы двигателя автомобиля необходимо соблюдать режимы его эксплуатации, в частности - необходимо следить за оборотами двигателя, не трогаться и не переключать передачи на пониженных оборотах, так и не давать чрезмерно высоких оборотов. Нормальное число оборотов при эксплуатации двигателя 3000- 5000 об.в минуту.
Для холостого хода это значение обычно 700 - 1000 об. в минуту.
Для индикации и отображения кол-ва оборотов двигателя во многих автомобилях есть ТАХОМЕТР на панели приборов, а в некоторых его нет :(

Так получилось в моей жизни, что в моем автомобиле, автомобиле супруги , автомобиле моего отца тахометра то и не оказалось.
В место тахометров установлены часы :D

Я решил исправить этот недостаток и сделать цифровой тахометр на любимой АРДУИНКЕ :D
Главные требования к самодельному тахометру были следующие:
1. Надежность.
2. Экономичность.
3. Точность.
4. Питание от бортовой сети автомобиля.
5. Малое энергопотребление.
6. Широкий диапазон рабочих температур.


Ардуино УНО как раз подошла по этим критериям , очень надежная (если соблюдать режимы эксплуатации и производить правильный расчет обвески), самая недорогая, и впритык подходящая(по количеству портов ввода-вывода) для реализации на ней тахометра.
К тому же , собирать мне необходимо не один а сразу 3 тахометра, во все наши семейные автомобили :D

Итак решено, сказано сделано.

Если с контроллером оказалось все понятно, то с выбором остальных элементов пришлось помозговать :shock:

Датчик.
Долго думал , что же взять в качестве датчика съема данных об оборотах двигателя с самого двигателя, так как о бортовом компьютере оставалось только мечтать, в этих автомобилях его попросту нет :(

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

Стробоскопический съем данных или оптический, с прерыванием луча.
Кто то использует оптические датчики, они надежные , стабильные, помехо-устойчивые, в них исключена возможность дребезга сигналов, но есть один очень большой минус -
это абсолютная чистота приемника, передатчика, и среды между ними. Они очень сильно боятся грязи и пыли, а под капотом автомобиля чего только нет, там и масло, отработка, пыль, грязь, и даже выхлопные газы.
К тому же, фото диоды и ИК диоды изготавливают целиком из пластика, то есть прозрачный корпус он же и линза полностью пластиковые, а пластик, как известно плохо ведет себя при низких температурах, мутнеет, трескается.
Поэтому этот вид датчика мне тоже оказался не по душе.

Магнитный съем данных.
Магнитный способ съема данных , бесконтактный, то есть датчик находится на расстоянии от магнита примерно от 1-3 см, абсолютно не требует чистоты среды вокруг себя, так как никаких оптических лучей он не излучает и не принимает, высокочастотный , поддерживает очень большие частоты , так же как и оптический, но только при использовании специального датчика магнитного поля - полупроводниковый датчик Холла.
Этот вариант мне приглянулся, но так как кроме герконов у меня ничего не было, а герконы (Герметичный контакт - использует тот же принцип срабатывания от магнитного поля) не могут работать с частотой более 10 Гц, я озадачился поиском датчиком Холла, ведь это достаточно редкая вещь и среди всякого радио-электронного хлама ее не найти. Но благо есть в Калининграде магазин электроники , где продают контроллеры , разные платы расширения и почти любые датчики (телефон магазина электроники в Калининграде +7-4012-508-209) Так вот, позвонил, спросил, в наличии датчиков Холла не оказалось но мне предложили купить под заказ, так я и сделал. Заказал датчики Холла аж 5 штук, по очень хорошей цене :D еще и со скидкой ;) Ждал пару недель, и вот свершилось, звонок из магазина - Здравствуйте, приезжайте и забирайте свои датчики Холла!

Отображение данных об оборотах двигателя.

Осталась еще одна проблема, что же использовать для отображения данных об оборотах двигателя???
Сначала думал использовать ЖК дисплей, такой же как в своей домашней метеостанции. Заказал , купил, но дисплейчик оказался не рабочий, покупал в интернет магазине, как кота в мешке, и теперь очень жалею, лучше бы купил в Калининградском магазине чуть дороже, но зато гарантированно и обменять в случае чего можно было бы. После неудачной покупки ЖК дисплея, руки уже было опустились, пока не наткнулся в своем хламе электроники на светодиодный цифровой дисплей от старого телефона с АОН Русь 27 плюс. После недолгих размышлений я решился попробовать применить именно его. Светодиодные матрицы в нем были по 3 блока цифр, по 3 матрицы па плате. Для отображения данных об оборотах двигателя вполне достаточно 3 цифр , то есть тысячи, сотни, десятки оборотов в минуту без единиц. Да и к тому же, цифровых выводов у Ардуино Уно как раз хватает для подключения 3-х семисегментных индикаторов при использовании принципа частотной коммутации общих катодов. Такая технология позволяет сократить число используемых выводов в разы. Все сегменты в таких матрицах запараллелены, а общие выводы нет. Таким образом, при подаче управляющих сигналов на выводы сегментов и подаче массы на один общий вывод одного числа, это число отобразится, при подаче массы на другой общий вывод, другого числа, отобразится цифра в другом сегменте матрицы. При частотном переключении общих выводов мы можем отображать разные цифры на разных сегментах матрицы. Кому интересно можете погуглить в интернете - частотное управление семисегментными индикаторами.

Сборка.
Итак, все элементы будущего тахометра выбраны, определены и найдены приступаем к сборке.
Первым делом занялся поиском библиотеки для управления светодиодным индикатором, таковых в сети оказалось великое множество. Но при испытании нескольких библиотек я решил, что лучше создать свою. Подсмотрел принципы в чужих библиотеках , добавил свое, и вышла очень даже неплохая и стабильная библиотека управления семисегментным индикатором, причем при включении его без дополнительных транзисторов. (это важно для удешевления конструкции) Ардуинка очень хорошо справлялась с моим кодом, загрузка памяти контроллера библиотекой всего 20%. Но цифровые выводы задействовались все под чистую, для 4-х блоков цифр. В Ардуине всего 11 цифровых выводов которые можно использовать для подключения и выдачи логических данных. 7 из них ушли для подключения запараллеленых сегментов, 3 для подключения общих катодов, и 1 я решил использовать для подключения отдельного светодиода индикации высоких оборотов, как в качестве экономайзера :) Если число оборотов двигателя выше 3500 об.в мин. загорается предупреждающий светодиод .
Так как цифровых выводов больше не осталось, датчик Холла я подключил к аналоговому входу, коих в Ардуине Уно аж 6 шт. Жаль только, что аналоговые входы никак нельзя использовать для управления светодиодами :(
Ну да ладно, нет так нет, в конце концов можно было взять Ардуину МЕГА, а там цифровых входов/выходов огромнейшая куча, но это уже получится далеко не бюджетный вариант, да и как то жалко будет МЕГУ использовать в качестве тахометра, та уже вполне сможет потянуть на полноценный бортовой компьютер.

Выкладываю фото самодельного цифрового тахометра для автомобиля:


Вложения
1.jpg
тахометр для автомобиля
2.jpg
самодельный тахометр
3.jpg
цифровой тахометр для авто

Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Re: Самодельный цифровой тахометр для автомобиля

Сообщение -=dp=- » 08 ноя 2014, 22:12

фото модуля с датчиком Холла и первое испытание самодельного тахометра.
Испытывал обычной дрелью, к сверлу прикрутил изолентой неодимовый магнит и подносил к датчику Холла на расстоянии 1-2 см.


Вложения
4.jpg
датчик Холла
5.jpg
тахометр на Ардуино
6.jpg
испытание самодельного тахометра

Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Re: Самодельный цифровой тахометр для автомобиля

Сообщение -=dp=- » 08 ноя 2014, 22:21

Подготовил тахометр для монтажа в панель приборов автомобиля.
Так как я решил в своем авто вмонтировать цифровой тахометр в приборную панель, я не стал делать для него корпус, просто залил плату с светодиодными индикаторами термоклеем, а ардуину прикручу с внутренней стороны приборной панели.
Датчик Холла припаял к кабелю с двойной изоляцией жил и облепил клеем-пластилином "Холодная сварка".
Так как данный клей на эпоксидной основе он вполне защитит датчик от влаги , пыли грязи и от механический воздействий.


Вложения
7.jpg
Монтаж тахометра в авто
8.jpg
датчик Холла в Холодной сварке
9.jpg
монтаж тахометра

Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Re: Самодельный цифровой тахометр для автомобиля

Сообщение -=dp=- » 08 ноя 2014, 22:29

Финальные испытания самодельного цифрового тахометра перед установкой в приборную панель авто.

Если кто заинтересовался изготовлением цифрового тахометра для автомобиля, готов поделиться опытом и советами, пишите в данной теме.

Скоро выложу видео испытаний тахометра :!:


Вложения
10.jpg
Лабораторные испытания цифрового тахометра
11.jpg
светодиодный индикатор
12.jpg
семисегментный цифровой индикатор

Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Re: Самодельный цифровой тахометр для автомобиля

Сообщение -=dp=- » 08 ноя 2014, 23:03

А вот и видео обзор самодельного тахометра http://youtu.be/KdtlZKCRGEM



Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Re: Самодельный цифровой тахометр для автомобиля

Сообщение -=dp=- » 13 дек 2019, 20:30

Скетч

Код: выделить все
include <SevenSeg.h>

//Create an instance of the object.
SevenSeg disp(11,7,3,5,6,10,2); // выводы сегментов
const int numOfDigits=3;
const int analogInPin = A0;

int sensorValue =0;
//Create global variables
int digitPins [numOfDigits]={12,9,8}; // выводы анодов
long previousMillis = 0;
int rpm=0;
int rps=0;
int val;
int tim=0;
long last=0;
int stat=LOW;
int stat2;
int contar=0;
int sens=100;  // this value indicates the limit reading between dark and light,
              // it has to be tested as it may change acording on the
              // distance the leds are placed.
int nPalas=1; // the number of blades of the propeller

int milisegundos=500; // the time it takes each reading

void setup() {
    Serial.begin(9600);
  pinMode(4,OUTPUT);
  digitalWrite(4, LOW);
 disp.setCommonCathode();
 disp.setDigitPins(numOfDigits,digitPins);

}

void loop() {
  disp.write(rpm);
 val=analogRead(0);
 if(val<sens)
    stat=LOW;
   else
    stat=HIGH;
   if(stat2!=stat){ 
    contar++;
   stat2=stat;
   }
   if(millis()-last>=milisegundos){
     //double rps=((double)contar/nPalas)/2.0*1000.0/milisegundos;
     tim=(contar/nPalas)/2*60000/(milisegundos);
     rpm=tim/10;
     //Serial.print((contar/2.0));
     //Serial.print("  RPS ");Serial.print(rps);
     //Serial.print(" RPM");Serial.print(rpm);
     //Serial.print("  VAL ");Serial.println(val);
     disp.write(rpm);
     if (rpm<300) {
  digitalWrite(4, LOW);   // turn the LED on (HIGH is the voltage level)
} else {             // wait for a second
  digitalWrite(4, HIGH);    // turn the LED off by making the voltage LOW
};
     contar=0;
     last=millis();
   };




};



sevenseg.jpg
Схема подключения семисегментных индикаторов


Библиотека SevenSeg.h

SevenSeg.zip
Библиотека SevenSeg.h
(28.65 KiB) Скачиваний: 1771



 
Сообщений: 3
Зарегистрирован: 26 дек 2019, 19:06

Re: Самодельный цифровой тахометр для автомобиля

Сообщение Толик » 12 сен 2020, 18:18

какой индикатор по марке у вас стоит на тахометре ? на каждый индикатор получается нужна своя библиотека ?



Аватар пользователя
 
Сообщений: 54
Зарегистрирован: 10 апр 2013, 18:41

Re: Самодельный цифровой тахометр для автомобиля

Сообщение Джек » 29 окт 2020, 11:47

Библиотеки нужно все скачать и подключить.
Как скачивать библиотеки для ардуино надеюсь объяснять не нужно )))
Подключить библиотеку можно распаковав архив и скопировать папку с библиотекой в папку с программой Arduino IDE > Libraries




Вернуться в Устройства на Ардуино

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3