Двухканальный вольт-амперметр (Arduino)

Двухканальный вольт-амперметр может использоваться как индикатор для лабораторного блока питания с максимальным выходным напряжением 30 В и максимальным выходным током 3А. При желании можно изменить диапазон измерения напряжения и тока, подобрав номиналы делителя напряжения и сопротивление шунта.

На аналоговые входы А0 А1 через делители напряжения подается измеряемое напряжение. Для измерения тока используются входы A2 A3, так как при сопротивлении шунта 0.01 Ом и максимальном токе 3 А напряжение на шунте не превысит 30 мВ используется усилитель напряжения на ОУ LM358. После усиления напряжения шунта до 5 В при токе 3 А, напряжение через токоограничивающие резисторы поступает на входы A2 A3.

Для питания ОУ LM358 необходимо напряжение от 9 В до 12В , но можно подать и 5 В, при этом максимальное выходное напряжение ОУ не превысит 4 В, что немного ограничит диапазон измерения тока.

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);// RS,E,D4,D5,D6,D7
void setup(){
  lcd.begin(16, 2);// LCD 16X2
  /////////10 bit 0...1023 /////////
  pinMode(A0,INPUT); // U1
  pinMode(A1,INPUT); // U2
  pinMode(A2,INPUT); // A1
  pinMode(A4,INPUT); // A2
}

int a0,a1,a2,a3,n0,n1;
float u0,u1,u2,u3;

void loop(){
   
 a0 = analogRead(A0);
 a1 = analogRead(A1);
 a2 = analogRead(A2);
 a3 = analogRead(A3);
  
u0 = a0*30.0/1023;
u1 = a1*30.0/1023; 
u2 = a2*3.0/1023;
u3 = a3*3.0/1023; 

if(u0>=10){n0=1;}else{n0=2;}
if(u1>=10){n1=1;}else{n1=2;}

  lcd.setCursor(1,0); 
  lcd.print(u0,n0);
  lcd.print(" B  ");
  lcd.print(u1,n1);
  lcd.print(" B ");
  
  lcd.setCursor(1,1); 
  lcd.print(u2,2);
  lcd.print(" A  ");
  lcd.print(u3,2);
  lcd.print(" A ");
  delay(500);
}

Для увеличения точности измерения можно использовать внешнее опорное напряжения, для этого в функцию setup добавьте следующий код:

analogReference(EXTERNAL);/* используем внешний источник опорного напряжения, 
   подаем +5В от ИОН на вывод AREF через сопротивление 5 кОм.
   При этом следует учесть внутреннее сопротивление вывода AREF в 32 кОм 
   и ввести коррекцию при пересчете измерения в вольты */

Добавить комментарий

Войти с помощью: