Саморобний спідометр і тахометр на базі arduino з дисплеєм 1602а

Тут описується цифровий прилад, що вимірює швидкість руху автомобіля і частоту обертання коленвала його двигуна. Індикатором служить ЖК-дисплей типу 1602А, він стандартний, на основі контролера HD44780.

Позначення 1602А фактично означає, що він на два рядки по 16 символів в рядку. Індикатор був куплений на «Aliexpress», знайдений за запитом «HD44780» (ціни від 81 рубля). Як уже сказано, у даного індикатора є два рядки. Так ось, у верхньому рядку прилад показує швидкість руху автомобіля, а в нижній - частоту обертання коленвала двигуна.

На відміну від багатьох бортових комп'ютерів, таких як «Оріон-БК» і подібних, а так же, приладів зі світлодіодними семисегментний індикаторами, цей ЖК-дисплей при включеному підсвічуванні дає дуже чітке зображення, відмінно видне як на світлі, так і вночі в темряві , що особливо важливо при автомобільної експлуатації.

В основі схеми приладу лежить готова плата ARDUINO UNO, на якій розташований мікроконтролер ATMEGA328, а так же вся його «обв'язування», необхідна для його роботи, включаючи USB-програм-матора і джерело живлення.

Прилад підключається по харчуванню до виходу замку запалювання автомобіля, а сигнали отримує з його датчиків Холла, один з яких є датчиком запалювання, а другий датчиком швидкості.

Принципова схема

Прилад може працювати тільки в автомобілі з інжекторним двигуном (в карбюраторних датчика швидкості немає, а датчик запалювання є далеко не у всіх). Схема приладу показана на малюнку 1. На цьому малюнку плата ARDUINO UNO показана схематично як «вид зверху».

Саморобний спідометр і тахометр на базі arduino з дисплеєм 1602а

Мал. 1. Принципова схема спідометра і тахометра на базі Arduino.

Для узгодження портів з датчиками використовуються каскади на транзисторах VT1 і VT2. Так як харчування надходить на прилад з виходу замку запалювання він працює тільки при включеному запалюванні. Датчик швидкості, так само як і датчик запалювання автомобіля являють собою джерела імпульсів, частота яких залежить від обертання механічних деталей автомобіля.

Датчик запалювання автомобіля з чотирициліндровим бензиновим двигуном формує два імпульсу за один оборот колінчастого валу. Якщо у двигуна не чотири циліндри частота проходження імпульсів буде інший.

Датчики швидкості бувають різні, але в більшості своїй, що особливо стосується вітчизняних автомобілів, вони дають 6000 імпульсів за один кілометр пробігу. Хоча, бувають, і такі що дають 2500 імпульсів на кілометр, можливо, є й інші.

Таблиця 1. Вихідний код програми.

Саморобний спідометр і тахометр на базі arduino з дисплеєм 1602а

Для роботи використовується функція pulseln. яка вимірює в мікросекундах тривалість позитивного або негативного перепаду вхідного імпульсу. Так що, для того щоб дізнатися період потрібно скласти тривалість позитивного і негативного напівперіодів.

Далі, швидкість руху (при датчику на 6000 імпульсів на км) обчислюється за формулою:

де Т - період в секундах, a F - швидкість в км / год. Оскільки період виміряно в мікросекундах фактично формула:

Якщо датчик на 2500 імпульсів на км (японський), то формула буде такою:

Відповідно, з огляду на, що період виміряно в мікросекундах:

Під іншою датчик потрібно буде розрахувати інше число, яке ділиться на період, і підставити його в програму замість «600000».

Для вимірювання частоти обертання колінчастого вала використовується формула:

де Т - період в секундах, a F - частота обертання коленвала в оборотах на хвилину. Оскільки період виміряно в мікросекундах фактично формула така:

Потім, результати виводяться в відповідні рядки ЖК-дисплея. Одиниці виміру вказані як «km / h» і «оЬ / тіп» (якщо не подобається, можете змінити).

Якщо вхідного сигналу немає, наприклад, включили запалювання, але двигун не завели, що не поїхали, то в рядках, де немає сигналу, буде напис «inf».

В принципі, налагодження не потрібно. Однак, якщо невідомо скільки імпульсів на кілометр дає датчик швидкості конкретного автомобіля, це потрібно попередньо з'ясувати.

Або займатися експериментальним підженемо числа, яке ділиться на період, звіряючись зі стрілочним спідометром, що вельми клопітно, або неможливо, якщо штатний спідометр несправний (що і могло стати причиною виготовлення даного приладу).

Але краще все ж дізнатися параметри датчика швидкості. А потім розрахувати число, яке в програмі ділиться на період. Позначимо це число X, а кількість імпульсів на кілометр N. Тоді X можна розрахувати за такою формулою:

X = 3600000000 / N

Наприклад, якщо датчик дає, припустимо 2500 імпульсів на кілометр:

Х = 3600000000/2500 = 1440000

Або, якщо датчик дає 6000 імпульсів на кілометр:

Х = 3600000000/6000 = 600000

На закінчення

Якщо прилад дає збої, може знадобитися оптимізація режиму роботи вхідних каскадів на транзисторах VT1 і VT2, відповідно, підбором опорів резисторів R3 і R6, а так же ємностей конденсаторів С2 і СЗ.

Каравкін В. РК-12-16.