2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Автомобильный вольтметр на Arduino

Вольтметр и тахометр для автомобиля на основе Arduino UNO

Принципиальная схема и описание самодельного вольтметра и тахометра на основе платформы Arduino UNO, хорошая самоделка для вашего автомобиля. У очень многих современных автомобилей нет ни тахометра ни вольтметра. Возможно, производители и правы, и знать водителю частоту вращения коленвала двигателя и напряжение в бортовой сети не обязательно.

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

Здесь приводится описание очень несложного в изготовлении, благодаря применению готового модуля — ARDUINO UNO, прибора, который одновременно показывает и напряжение и частоту вращения коленвала. Причем, показывает это он на очень четком, подсвечиваемом ЖК-дисплее, который очень хорошо виден как днем, так и ночью. Следует заметить, что и себестоимость данного прибора относительно невысока, если покупать ARDUINO UNO и дисплей на радиорынке или на Aliexpress.

Принципиальная схема

Индикатором служит ЖК-дисплей типа 1602А, он стандартный, на основе контроллера HD44780. Обозначение 1602А фактически значит, что он на две строки по 16 символов в строке. Основой прибора служит ARDUINO UNO это относительно недорогой готовый модуль, — небольшая печатная плата, на которой расположен микроконтроллер ATMEGA328, а так же вся его «обвязка», необходимая для его работы, включая USB-программатор и источник питания.

Рис. 1. Принципиальная схема вольтметра с тахометром к автомобилю на основе Arduino UNO.

Тем, кто незнаком с ARDUINO UNO, рекомендую сначала ознакомиться со статьей Л.1. Прибор подключается по питанию к выходу замка зажигания автомобиля, а сигнал на измерение частоты вращения коленвала получает с датчика Холла, который является датчиком зажигания. Датчиком напряжения служит цепь питания прибора. То есть, он измеряет то напряжение, которым питается.

Прибор может работать только в автомобиле с электронной системой зажигания (в автомобиле с электромеханической системой зажигания датчика Холла нет). Схема прибора показана на рисунке 1. На этом рисунке плата ARDUINO UNO показана схематично как «вид сверху».

Для согласования цифрового порта с датчиком Холла используются каскад на транзисторе VТ1. Для измерения напряжения, простой делитель напряжения на резисторах R5 и R6. Он нужен потому, что максимальное напряжение, подаваемое на аналоговый вход не должно быть более 5V.

Так как питание поступает на прибор с выхода замка зажигания он работает только при включенном зажигании. Датчик зажигания автомобиля с четырехцилиндровым бензиновым двигателем формирует два импульса за один оборот коленчатого вала. Если у двигателя не четыре цилиндра частота следования импульсов будет другой.

Здесь именно под четырехцилиндровый мотор.

Программа

Программа на C++ с подробными комментариями приведена на рисунке 2. Действие программы по измерению частоты вращения коленвала основано на измерении периода импульсов, поступающих с датчика, и последующего расчета частоты вращения коленвала.

Рис. 2. Исходный код программы.

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

Далее, частота вращения вычисляется по формуле:

Читать еще:  Простой проволочный каркас для абажура

где Т — период в секундах, a F — частота вращения коленвала в оборотах в минуту. Поскольку период измерен в микросекундах фактически формула такая:

Измерение длительности периода состоит из трех этапов, сначала измеряются длительности положительной и отрицательной полуволны в строках:

Затем, происходит вычисление полного периода в строке:

И потом, вычисление частоты вращения коленвала в строке:

Действие программы по измерению напряжения основано на чтении данных с аналогового входа и расчета результата измерения.

Выход аналогового порта преобразуется АЦП микроконтроллера в цифровую форму. Для получения результата в единицах вольт, нужно его умножить на 5 (на опорное напряжение, то есть, на напряжение питания микроконтроллера) и разделить на 1024.

Для того чтобы можно было измерять напряжение более 5V, вернее, более напряжения питания микроконтроллера, потому что реальное напряжение на выходе 5-вольтового стабилизатора на плате ARDUINO UNO может отличаться от 5V, и обычно немного ниже, нужно на входе применить обычные резистивные делители. Здесь это делитель напряжения на резисторах R5 и R6.

При этом, для приведения показаний прибора к реальному значению входного напряжения, нужно в программе задать деление результата измерения на коэффициент деления резистивного делителя. А коэффициент деления, обозначим его «К», можно вычислить по такой формуле:

Очень любопытно то, что резисторы в делителях совсем не обязательно должны быть высокоточными. Можно взять обычные резисторы, затем измерить их фактическое сопротивление точным омметром, и уже в формулу подставить эти измеренные значения.Получится значение «К» для конкретного делителя, которое и нужно будет подставлять в формулу. Чтение данных с аналогового порта происходит в строке:

Затем, производится вычисление фактического напряжения с учетом коэффициента деления делителя входного напряжения:

В этой строке число 5.0 — это напряжение на выходе стабилизатора платы ARDUINO UNO. В идеале должно быть 5V, но для точной работы вольтметра это напряжение нужно предварительно измерить. Подключите источник питания напряжением 12V и измерьте достаточно точным вольтметром напряжение +5V на разъеме POWER платы. Что будет, то и вводите в эту строку вместо 5.0, например, если будет 4.85V, строка будет выглядеть так:

На следующем этапе нужно будет измерить фактические сопротивления резисторов R5 и R6 и определить коэффициент К (указан 0.152) для этой строки по формуле:

Допустим, получилось К = 0.159, так и пишем:

Таким образом, в текст программы нужно внести изменения соответственно фактическому напряжению на выходе 5-воль-тового стабилизатора платы ARDUINO UNO и согласно фактическому коэффициенту деления резистивного делителя.

Затем, результаты измерений выводятся на ЖК-дисплей. Напряжение вносится в первую строку дисплея, а частота вращения во вторую. Единицы измерения указаны как «V» и «оЬ/тіп».

Если входного сигнала с датчика Холла нет, например, включили зажигание, но двигатель не завели, то в строке, где индицируется частота вращения, будет надпись «inf». Если прибор дает сбои при измерении частоты вращения коленвала, может потребоваться оптимизация режима работы входного каскада на транзисторе VT1, соответственно, подбором сопротивления резистора R3, а так же емкости конденсатора С2.

Каравкин В. РК-2017-01.

  1. Каравкин В. — Ёлочная мигалка на ARDUINO как средство от боязни микроконтроллеров. РК-11-2016.
  2. Каравкин В. — Частотомер на ARDUINO. РК-12-2016.
  3. Каравкин В. — Спидометр и тахометр на ARDUINO для автомобиля, РК-12-2016.
  • PCBWay — всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН
  • Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет
  • Онлайн просмотрщик Gerber-файлов от PCBWay!

Здравствуйте,
Что-то в схеме, по датчику зажигания, не состыковывается:
— У транзистора КТ3102 напряжение база — эмитер по даташиту 5В, а делитель от датчика к базе 6В, при максимальном напряжении достигающим на датчике — до 15В.
— Нет ограничителя по току к базе транзистора, т.е. резистора включенного последовательно перед базой, вот резистор R2 возможно должен быть включен именно так, а сейчас он включен как-то бесполезно.
Судя по этому транзистор долго не протянет.
Но это сугубо моё мнение.

Читать еще:  Шкаф из гипсокартона – неожиданное, но выгодное решение

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Вольтметр на Arduino

В этой статье приводится интересная схема для любителей экспериментов и Arduino. В ней представлен простой цифровой вольтметр, который может безопасно измерять постоянное напряжение в диапазоне от 0 до 30 В. Сама плата Arduino может питаться от стандартного источника 9 В.

Как известно, с помощью аналогового входа Arduino можно измерить напряжение от 0 до 5 В (при стандартном опорном напряжении 5 В). Но этот диапазон можно расширить, воспользовавшись делителем напряжения.

Делитель понижает измеряемое напряжение до приемлемого для аналогового входа уровня. Затем специально написанный код высчитывает фактическое напряжение.

Аналоговый датчик в составе Arduino определяет напряжение на аналоговом входе и преобразует его в цифровой формат, воспринимаемый микроконтроллером. К аналоговому входу A0 мы подключаем делитель напряжения, образованный сопротивлениями R1 (100K) и R2 (10K). С такими значениями сопротивлений на Arduino можно подавать до 55 В, поскольку коэффициент деления в данном случае получается 11, поэтому 55В/11=5В. Для того, чтобы быть уверенным в безопасности измерений для платы, лучше проводить измерение напряжения в диапазоне от 0 до 30 В.

Если показания дисплея не соответствуют показанием поверенного вольтметра, следует использовать прецизионный цифровой мультиметр для нахождения точных значений R1 и R2. При этом в коде нужно будет заменить R1=100000.0 и R2=10000.0 своими значениями. Затем стоит проверить питание, измерив на плате напряжение между 5V и GND. Напряжение может быть 4.95 В. Тогда в коде vout = (value * 5.0) / 1024.0 нужно заменить 5.0 на 4.95. Желательно использовать прецизионные резисторы с погрешностью не более 1%. Помните, что напряжение выше 55 В может вывести плату Arduino из строя!

Плата Arduino Uno
Резистор 100 КОм
Резистор 10 КОм
Резистор 100 Ом
Потенциометр 10 КОм
LCD-дисплей 16×2

Цифровой вольтметр 0-30 Вольт на базе Ардуино

Представлена полезная схема для любителей поэкспериментировать с Ардуино. Это простой цифровой вольтметр, которым надежно можно измерять постоянное напряжение в диапазоне 0 – 30В. Плату Ардуино, как обычно, можно питать от 9В батареи.

Как вам вероятно известно, аналоговые входы Ардуино можно использовать для измерения постоянного напряжения в диапазоне 0 – 5В и этот диапазон можно увеличить,
используя два резистора в качестве делителя напряжения. Делитель уменьшит измеряемое напряжение до уровня аналоговых входов Ардуино. А затем программа вычислит реальную величину напряжения.

Аналоговый датчик на плате Ардуино определяет наличие напряжения на аналоговом входе и преобразует его в цифровую форму для дальнейшей обработки микроконтроллером. На рисунке напряжение подается на аналоговый вход (А0) через простой делитель напряжения, состоящий из резисторов R1 (100кОм) и R2 (10кОм).

При этих значениях делителя на плату Ардуино можно подавать напряжение от 0 до
55В. На входе А0 имеем измеряемое напряжение деленное на 11,т.е.55В / 11=5В. Иначе говоря, при измерении 55В на входе Ардуино имеем максимально допустимое значение 5В. На практике лучше на этом вольтметре написать диапазон “0 – 30В”, чтобы оставался
Запас по безопасности!

Примечания

• Если показания дисплея не совпадают с показаниями промышленного (лабораторного) вольтметра, то необходимо точным прибором измерить величину сопротивлений R1 и R2 и вставить эти значения вместо R1=100000.0 и R2=10000.0 в коде программы. Затем следует измерить лабораторным вольтметром реальное напряжение между выводами 5В и “Земля” платы Ардуино. Получится значение меньшее, чем 5В, например, получилось 4.95В. Это реальное значение следует вставить в строке кода
vout = (value * 5.0) / 1024.0 вместо 5.0.
Кроме того, старайтесь применять прецизионные резисторы с допуском 1%.

• Резисторы R1 и R2 обеспечивают некоторую защиту от повышенных входных напряжений.Однако следует помнить, что любые напряжения выше 55В могут вывести из строя плату Ардуино. Кроме того, в этой конструкции не предусмотрены другие виды защиты(от скачков напряжения, от переполюсовки или повышенного напряжения).

Читать еще:  Магнитная масса сварочного аппарата из старого динамика

Программа цифрового вольтметра

/*
DC Voltmeter
An Arduino DVM based on voltage divider concept
T.K.Hareendran
*/
#include

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0; // resistance of R1 (100K) -see text!
float R2 = 10000.0; // resistance of R2 (10K) – see text!
int value = 0;
void setup() <
pinMode(analogInput, INPUT);
lcd.begin(16, 2);
lcd.print(“DC VOLTMETER”);
>
void loop() <
// read the value at analog input
value = analogRead(analogInput);
vout = (value * 5.0) / 1024.0; // see text
vin = vout / (R2/(R1+R2));
if (vin

• Плата Arduino Uno
• 100 кОм резистор
• 10 кОм резистор
• 100 Ом резистор
• 10кОм Подстроечный резистор
• LCD дисплей 16?2 ( Hitachi HD44780)

Создать вольтметр на Ардуино своими руками

Среди начинающих разработчиков электронной техники популярно создавать амперметр и вольтметр на Ардуино. Эти устройства знакомы с курса физики, начиная с 7 класса.

В статье ниже подробно расписана инструкция о том, как создать собственный вольтметр на Ардуино с LCD дисплеем.

Принцип работы

Вольтметром называют приспособление, роль которого – измерение ЕДС, так называемой, электродвижущей силы. Измерения проводятся на определенном отрезке электрической цепи. Если сказать по-простому, задача прибора – замер напряжения.

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

Компоненты

Список компонентов для создания вольтамперметра на Ардуино или каждого устройства по отдельности:

  • 1 Arduino;
  • 1 Макет (не забудьте прокладки перемычек);
  • 1 Дисплей 1602А (16×2 с подсветкой);
  • 1 1×16 отсекают заголовки для фиксации дисплея;
  • 1 Зуммер;
  • 2 винтовые клеммы с двумя контактами;
  • 3 Тактильные переключатели (кнопки);
  • 1 потенциометр 10k;
  • 6 резисторов 10k;
  • 2 резистора 100k;
  • 1 резистор 100R;
  • 1 резистор 10R;
  • 1 0.47R 5W силовой резистор.

Компоненты должны быть собраны в макете следующим образом:

Программа для устройства

Ниже приведен отрывок из листинга программы «вольтметр на Ардуино»:

Настройка

В основном, требования к запуску проекта «вольтметр на Arduino» на независимой печатной плате – это источник питания 5 В, 16-мегагерцовый кварцевый генератор и, конечно же, связанные выводы микроконтроллера со всеми цифровыми и аналоговыми портами платы Arduino. Диаграмма ниже популярна в Интернете и объясняет, как нужно использовать схему для работы в качестве прототипа.

Новые компоненты, которые необходимо добавить в прототип для работы на печатной плате:

  • 1 28-контактный паяльник для пайки (для микроконтроллера Atmega);
  • 1 разъем питания для печатной платы;
  • 1 регулятор LM78L05;
  • 1 1uf конденсатор;
  • 1 конденсатор 10футов;
  • 1 кварцевый генератор 16 МГц;

С новыми компонентами и выводом микроконтроллера имеем следующую схему проекта «Ардуино-вольтметр»:

Еще на просторах Интернета можно найти такую схему вольтметра:

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

Проверка работоспособности

Для калибровки используются 3 кнопки. Центральная кнопка является конфигурационной и активирует режим калибровки, если нажата в течение 2 секунд, а также подтверждена звуковым сигналом.

Остальные кнопки – слева и справа, должны уменьшать и увеличивать калибровку соответственно, за чем следует один звуковой сигнал. Калибровка начинается с напряжения, затем, при нажатии кнопки конфигурации, снова переключается на ток, а при повторном нажатии сохраняет конфигурацию в EEPROM и возвращает устройство в нормальный режим.

Как повысить точность измерения

Для повышения точности созданного устройства потребуется провести эксперимент. Первое значение получаем от вольтметра на Ардуино с выводом на ПК, вторую – с помощью необходимой функции. Поменяем константу (1.1 * 1023.0 * 1000) на усовершенствованную:

Первый множитель означает – 1.1 * Vcc1 (с вольтметром) / Vcc2 (с нашей функцией).

В итоге получаем погрешность. Затем, путем подсчета, выходим на настоящие значение напряжения в электрической сети. Предел измерений показаний на Ардуино устройства варьируется между 0 и 50 Вольтами.

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector