В предыдущей статье рассматривалось как собрать простой вольтметр на Arduino, в качестве источника опорного напряжения использовалось напряжение питания +5 В, но такой вариант использования опорного напряжения имеет недостаток — нестабильность напряжения питания приведет к погрешности в процессе измерения напряжения. Так же был опробован метод использования внутреннего ИОН.
В этой статье мы рассмотрим вариант вольтметра с использованием внешнего источника опорного напряжения.
Соберите схему показанную на рисунке:
При использовании внешнего источника опорного напряжения, подаем +5В от ИОН на вывод AREF через сопротивление 4,7 кОм (5 кОм — рекомендовано). При этом следует учесть внутреннее сопротивление вывода AREF в 32 кОм и ввести коррекцию при пересчете измерения в вольты.
Загрузите в микроконтроллер следующий скетч:
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// RS,E,D4,D5,D6,D7 int u = 0; // переменная для числа пребразования 0-1023 float u_in = 0.0; // переменная для напряжения 0.0-5.0 void setup() { lcd.begin(16, 2);// LCD 16X2 analogReference(EXTERNAL);/* используем внешний источник опорного напряжения, подаем +5В от ИОН на вывод AREF через сопротивление 5 кОм. При этом следует учесть внутреннее сопротивление вывода AREF в 32 кОм и ввести коррекцию при пересчете измерения в вольты */ pinMode(A0,INPUT);// A0 - аналоговый вход } void loop() { u = analogRead(A0); // измерение u_in = (u * 4.33) / 1023; /* пересчет измерения в вольты при опорном 5 В */ lcd.setCursor(1,0); lcd.print("U = "); lcd.print(u_in); // вывод измерения на экран lcd.print(" V"); delay(500); }
u_in = (u * 4.33) / 1023; — эта строка кода позволяет откалибровать вольтметр, коэффициент подобран так, чтобы при внешнем ИОН 5 В, вольтметр измерял с погрешностью не более чем ±1 ед. младшего разряда в диапазоне от 0 В до напряжения на выводе AREF Arduno.
Измеренное значение 3,3В на плате Arduino.