Пример 14. Вольтметр
Примеры
ПРИМЕРЫ
- Пример 1. Светодиоды
- Пример 2. Подключение кнопки
- Пример 3. Переключатель
- Пример 4. Активный зуммер
- Пример 5. Пассивный зуммер
- Пример 6. Фоторезистор
- Пример 7. RGB-светодиод
- Пример 8. Семисегментный индикатор и 74HC595N
- Пример 9. Четырехразрядный 7-сегментный индикатор
- Пример 10. Светодиодная матрица
- Пример 11. Светодиодная шкала
- Пример 12. ЖК-дисплей
- Пример 13. Джойстик
- Пример 14. Вольтметр
- Пример 15. Термистор
- Пример 16. Модуль DHT11
- Пример 17. Модуль HC-SR04
- Пример 18. Датчик движения HC-SR501
- Пример 19. Матричная клавиатура
- Пример 20. ИК датчик и пульт
- Пример 21. Модуль часов DS-1302
- Пример 22. RFID-модуль RC522
- Пример 23. Сервопривод
- Пример 24. Модуль реле
- Пример 25. Двигатель постоянного тока
- Пример 26. Шаговый двигатель и драйвер ULN2003
- Пример 27. Драйвер двигателей на L298N
- Пример 28. MP3-плеер DFPlayer Mini
- Пример 29. Датчик уровня воды
- Пример 30. Serial Port
- Пример 31. Симуляция парковки
- Пример 32. Датчик температуры DS18B20
- Пример 33. Bluetooth-модуль HC-06
- Пример 34. Плата расширения с дисплеем и кнопками
- Пример 35. Плата расширения для двигателей на L293D
- Пример 36. Ethernet шилд W5100
- Пример 37. GSM/GPRS шилд SIM900
- Пример 38. GPS модуль Ublox NEO-6M
- Пример 39. Модуль считывания отпечатков пальцев
- Пример 40. Шаговый двигатель NEMA17 и драйвер TB6600
Вольтметр — прибор для измерения напряжения (разности потенциалов) между двумя точками электрической схемы.
Описание:
В данном примере с помощью Arduino сделаем простейший вольтметр на 5 В.
Компоненты:
Схема:
Скетч:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <Wire.h> // библиотека для управления устройствами по I2C #include <LiquidCrystal_I2C.h> // подключаем библиотеку для LCD 1602 LiquidCrystal_I2C lcd(0x27,16,2); // присваиваем имя lcd для дисплея 16х2 int Vpin = A0; // «+» подсоединяем к аналоговому выводу А0 float voltage; float volts; void setup() // процедура setup { Serial.begin(9600); lcd.init(); // инициализация LCD дисплея lcd.backlight(); // включение подсветки дисплея } void loop() // процедура loop { voltage = analogRead(Vpin); // получаем измеряемое напряжение volts = voltage/1023*5.0; Serial.println(volts); lcd.print("voltage = "); lcd.print(volts); delay(500); lcd.clear(); } |
Деление напряжения
В данном примере будем использовать переменный резистор для деления напряжения.
Компоненты:
Схема:
Скетч:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include <Wire.h> // библиотека для управления устройствами по I2C #include <LiquidCrystal_I2C.h> // подключаем библиотеку для LCD 1602 LiquidCrystal_I2C lcd(0x27,16,2); // присваиваем имя lcd для дисплея 16х2 const int analogIn = A0; float val = 0; void setup() // процедура setup { Serial.begin(9600); lcd.init(); // инициализация LCD дисплея lcd.backlight(); // включение подсветки дисплея lcd.print("Voltage Value:"); } void loop() // процедура loop { val = analogRead(A0); val = val/1024*5.0; Serial.print(val); Serial.println("V"); lcd.setCursor(6,1); lcd.print(val); lcd.print("V"); delay(500); } |
Вольтметр до 55 В
В заключительном примере резисторы R1 и R2 имеют номиналы 100 кОм и 10 кОм. Средняя точка делителя напряжения используется для подачи сигнала на аналоговый вход платы Arduino. Напряжение, падающее на резисторе R2 (Vout), называется напряжением на выходе делителя напряжения. Оно может быть рассчитано по следующей формуле:
То есть напряжение на выходе делителя прямо пропорционально напряжению на его входе и отношению сопротивлений резисторов R1 и R2.
Используя приведенную формулу в коде программы для Arduino мы легко можем определить напряжение на входе делителя. Максимальное напряжение на входе (контактах) платы Arduino составляет 5 В, поэтому при используемых нами номиналах резисторов (их отношение составляет 100:10) мы с помощью нашего вольтметра сможем измерять напряжение до 55 В.
Компоненты:
Схема:
Скетч:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
#include <Wire.h> // библиотека для управления устройствами по I2C #include <LiquidCrystal_I2C.h> // подключаем библиотеку для LCD 1602 LiquidCrystal_I2C lcd(0x27, 16, 2); // присваиваем имя lcd для дисплея 16х2; обычно I2C адаптер имеет адрес 0x27 или 0x3f float input_volt = 0.0; float temp = 0.0; float r1 = 100000.0; //сопротивление резистора R1 float r2 = 10000.0; // сопротивление резистора R2 float tol = 0.2; // (!) ваша погрешность при нулевом напряжении void setup() // процедура setup { Serial.begin(9600); lcd.init(); // инициализация LCD дисплея lcd.backlight(); // включение подсветки дисплея } void loop() // процедура loop { int analogvalue = analogRead(A0); temp = (analogvalue * 5.0) / 1024.0; // формула для конвертирования значения напряжения input_volt = temp / (r2 / (r1 + r2)) - tol; // рассчитываем входное напряжение if (input_volt < 0.1) { input_volt = 0.0; } Serial.print("Voltage = "); // выводим значение напряжения в окно монитора последовательной связи Serial.println(input_volt, 3); lcd.setCursor(0,0); // ставим курсор на 1-й символ первой строки lcd.print("Voltage = "); // напряжение lcd.print(input_volt, 3); // 3 знака после запятой lcd.setCursor(0,1); // ставим курсор на 1-й символ второй строки lcd.print("Tolrnce = "); // наша погрешность lcd.print(tol, 3); // 3 знака после запятой delay(500); lcd.clear(); } |