Спидометр и тахометр на ARDUINO для автомобиля с сигнализатором превышения скорости
- Подробности
- Категория: Схемы на Arduino
- Опубликовано: 05.02.2018 22:52
- Просмотров: 4067
Каравкин В.
В статье автора «Спидометр и тахометр на ARDUINO для автомобиля», в журнале «Радиоконструктор» №12 за 2016 год было описание несложного, благодаря использованию готового микроконтроллерного модуля ARDUINO UNO, прибора, на двухстрочном ЖК-дисплее показывающего скорость движения автомобиля и частоту вращения коленвала двигателя. Но тот прибор только показывал скорость, а здесь предлагается дополнение к нему, чтобы он не только показывал скорость движения, но и подавал звуковой сигнал водителю, если скорость превысила некий порог, например, 60 км/час при езде по городу или 90 км/час при езде по шоссе.
Суть дополнения в том, что в схему вводится схема на транзисторном ключе VT3, с зуммером в коллекторной цепи (рис.1). На базу этого транзистора управляющее напряжение подается через переключатель S1 либо с порта D12, либо с порта D11 платы ARDUINO UNO.
Этот переключатель S1 служит для выбора режима «город / шоссе». В положении «город» зуммер BF1 звучит при превышении скорости 60 км/час, а в положении «шоссе» зуммер звучит при превышении скорости 90 км/час. Выключатель S2 служит для отключения данной функции.
Значения скорости 60 и 90 км/час задаются в программе, и их легко можно заменить на другие значения, - какие угодно.
Существенные изменения касаются не только схемы, но и программы (таблица 1).
В программе добавляются два цифровых выхода, и вводится компараторная функция, которая следит за результатами измерения скорости и соответственно, изменяет логические уровни на этих двух цифровых выходах.
Цифровые выходы заданы в строках:
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
Для включения сигнализатора превышения скорости используется компараторная функция if
В строке:
if(frequency1>90)digitalWrite(11, HIGH);
указывается, что при превышении скоростью значения 90 км/час на порту 11 устанавливается логическая единица. В строке:
if(frequency1<90)digitalWrite(11, LOW) ;
указывается, что при скорости ниже значения 90 км/час на порту 11 устанавливается логический ноль.
В строке:
if(frequency1>60)digitalWrite(12, HIGH);
указывается, что при превышении
скоростью значения 60 км/час на порту 12 устанавливается логическая единица. В строке:
if (f requency1<60) digitalWrite (12 , LOW) ;
указывается, что при скорости ниже значения 60 км/час на порту 12 устанавливается логический ноль.
Вместо значений «60» и «90» можно подставить любые другие значения скорости, на которые будет срабатывать звуковой сигнализатор.
Литература:
1. Каравкин В. «Спидометр и тахометр
на ARDUINO для автомобиля».
ж. Радиоконструктор, №12, 2016г. стр.
34-36.
РК 02-2017