Unikumrus.com / Бытовая техника и электроника/Автомобильный вольтметр на Arduino

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



Приветствую всех любителей самоделок, сегодня мы соберём автомобильный вольтметр на Arduino и семисегментном индикаторе для контроля бортового напряжения в авто. Данное устройство простое в сборке и требует настройки лишь один раз.

Инструменты и материалы
-Arduino Pro mini
-Резистор на 10 Ком 0,5 Вт
-Резистор на 2 Ком 0,5 Вт
-Индикатор на tm1637
-Провода ( в моём случае - МГТФ 0,12 )
-Программатор
-Клемы
-Термоклей
-Клеевой пистолет
-Паяльник
-Припой
-Канифоль


Шаг первый.Схема:
Схема проста в сборке. R1 = 10 Ком, R2 = 2 Ком.


Шаг второй.Сборка:
Собираем делитель напряжения


Подпаиваем провода к индикатору


Спаиваем всё по схеме



Места где может произойти КЗ, можно залить термоклеем



Arduino приклеиваем к обратной стороне индикатора ( для уменьшения размеров )



Шаг третий.Скетч:
В скетче есть 4 переменные которые нужно подстроить для себя

#include <GyverTM1637.h>

//---------Переменные для настройки------------
#define CLK 2   // Цифровой порт на Arduino куда подключается CLK дисплея 
#define DIO 3   // Цифровой порт на Arduino куда подключается DIO дисплея 
int analogInput = A0; // Аналоговый порт куда подключается выход с делителя напряжения
double inaccuracy = 0.5; // напряжение в вольтах которое надо отнять от показания вольтметра чтобы оно сошлось с показаниями на БП (или прибавить)
//----------------------------------------------

GyverTM1637 disp(CLK, DIO);
byte tire[] = {0x40, 0x40, 0x40, 0x40}; // вывод ----
float R1 = 10000.0; // Сопротивление R1 (10K) в ОМАХ
float R2 = 2000.0; //  Сопротивление R2 (2K)в ОМАХ 
float vout = 0.0;
float vin = 0.0;
int value = 0;
double ptr;
void setup(){
pinMode(analogInput, INPUT);
 disp.brightness(7);
 disp.point(0);   
  disp.displayByte(tire); 
  delay(500);
  disp.clear();  
}
void loop(){

value = analogRead(analogInput);
vout = (value * 5.0) / 1024.0; 
vin = vout / (R2/(R1+R2));

vin = vin - inaccuracy;
double V1 = floor(vin);
double V2 = modf(vin, &ptr);
V2 = V2*100;
disp.displayClock(V1,V2);
if (vin<0.95) {
vin=0.0;
disp.displayClock(00,00);
}
delay(1200);
}


Шаг четвёртый.Тест:
Подключаем АКБ и смотрим результат:



Готово! Теперь осталось установить данное устройство в автомобиль и можно пользоваться.
2019-05-14
Вернуться назад