Circuit de voltímetre CC basat en Arduino: detalls i proves de construcció

Proveu El Nostre Instrument Per Eliminar Problemes





En aquest post, anem a construir un voltímetre de CC mitjançant Arduino, on es mostren les lectures en LCD de 16x2.



El disseny del voltímetre proposat pot llegir fins a 30 V amb una tolerància de +/- 0,5 volts. Veurem com funciona aquesta configuració i explorarem altres possibilitats que podem aconseguir a part de mesurar el voltatge.



Aquest projecte és bastant senzill, fins i tot els principiants poden aconseguir-ho amb facilitat, però cal tenir precaució en prototipar el circuit, ja que aplicarem tensió externa; qualsevol connexió errònia a Arduino pot provocar danys mortals a la vostra placa.

Deixeu que l’advertència sigui un costat, explorem com funciona.



Aquí estem utilitzant el procés de conversió analògica a digital. El voltatge de qualsevol font és una funció analògica, les lectures que es mostren a la pantalla LCD de 16x2 són una funció digital.

El repte és convertir aquestes funcions analògiques en funcions digitals. Afortunadament, Arduino té funcionalitats per llegir funcions analògiques i convertir-les en funcions discretes.

Microcontrolador Arduino equipat amb convertidor analògic a digital de 10 bits (ADC). Això significa que Arduino pot llegir 2 ^ 10 = 1024 nivells de tensió discrets.

En altres paraules, la tensió aplicada al pin analògic d'Arduino es mostra a 1024 nivells de tensió discrets respecte a una tensió de referència que es mostra al valor mostrat a la pantalla LCD. Aquest és el principi darrere d’aquest voltímetre o gairebé qualsevol voltímetre digital.

Tot i això, Arduino no mesura directament la tensió externa aplicada. El voltatge es redueix amb l'ajut de divisors de tensió i es fan algunes matemàtiques al programa per obtenir una lectura de tensió real.

Com funciona

El circuit consta de dues resistències, una pantalla LCD i un Arduino, que és el cervell del voltímetre digital. Les dues resistències actuen com a divisor de tensió, el node del divisor està connectat al pin analògic # A0 de l'Arduino, que llegeix la tensió d'entrada. La connexió a terra s’estableix entre Arduino i la font de tensió externa.

La tensió mínima que pot mesurar aquest voltímetre és de 0,1 V, aquest llindar està establert al programa, de manera que llegeix 0,00 volt després de desconnectar la font de tensió i no mostra lectures a causa de la càrrega estàtica al voltant de la sonda de mesura.

Prototip de l'autor:

Resultats de proves de voltímetre CC basades en Arduino

No inverteixi la polaritat mentre es mesura el voltatge, no perjudicarà el circuit, però no llegeix cap tensió i mostra 0,00 V fins que no corregiu la polaritat. Ajusteu el contrast de la pantalla LCD al nivell òptim girant el potenciòmetre.

Assegureu-vos que no apliqueu cap font de tensió que pugui augmentar els 30V, ja que pot danyar la vostra placa Arduino. Tècnicament es pot augmentar la tensió de mesura màxima d’aquest circuit canviant els valors de la resistència i modificant el programa, però per a la configuració il·lustrada 30V és límit.

Per a una lectura precisa, trieu resistències fixes amb un valor de tolerància mínim, les resistències juguen un paper important en la calibració de la lectura de voltatge.

Esquema de connexions:

Circuit de voltímetre CC basat en Arduino

L’altra possibilitat d’aquest voltímetre és que podem modificar el programa per automatitzar algunes tasques.

Per exemple, detecteu la tensió completa de la bateria i desconnecteu la bateria del carregador o desconnecteu la bateria si la tensió es troba per sota del nivell de tensió preestablert, etc., aquestes tasques es poden realitzar fins i tot sense pantalla LCD. No obstant això, això és objecte d'un altre article.

Programa:

//--------Program developed by R.Girish---------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
int analogInput = 0
float vout = 0.0
float vin = 0.0
float R1 = 100000
float R2 = 10000
int value = 0
void setup()
{
pinMode(analogInput, INPUT)
lcd.begin(16, 2)
lcd.print('DC VOLTMETER')
Serial.begin(9600)
}
void loop()
{
value = analogRead(analogInput)
vout = (value * 5.0) / 1024
vin = vout / (R2/(R1+R2))
if (vin<0.10) {
vin=0.0
}
lcd.setCursor(0, 1)
lcd.print('INPUT V= ')
lcd.print(vin)
delay(500)
}
//--------Program developed by R.Girish---------//

Consulteu les lectures amb un bon voltímetre / multímetre.




Anterior: Circuit de bloqueig d’encesa d’automòbil Bluetooth: protecció del cotxe sense clau Següent: Circuit d'alarma de seguretat de porta magnètica per alertar si la porta s'ha obert