Circuit de voltmetru DC bazat pe Arduino - Detalii de construcție și testare

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





În acest post, vom construi un voltmetru de curent continuu folosind Arduino, unde citirile sunt afișate pe ecranul LCD de 16x2.



Proiectarea voltmetrului propus poate citi până la 30V cu toleranță de +/- 0,5 volt. Vom vedea cum funcționează această configurare și vom explora alte posibilități pe care le putem realiza altele decât măsurarea tensiunii.



Acest proiect este destul de simplu, chiar și începătorii pot realiza cu ușurință, dar trebuie să aveți grijă la prototiparea circuitului, deoarece vom aplica tensiune externă, orice conexiune greșită la Arduino poate duce la deteriorarea fatală a plăcii dvs.

Lăsați avertismentul să fie o parte, să analizăm cum funcționează.



Aici, folosim procesul de conversie analog la digital. Tensiunea de la orice sursă este o funcție analogică, citirile afișate pe 16x2 LCD sunt o funcție digitală.

Provocarea este convertirea acelor funcții analogice în funcție digitală. Din fericire, Arduino are funcționalitate pentru a citi funcții analogice și a le converti în funcții discrete.

Microcontroler Arduino echipat cu convertor analogic digital pe 10 biți (ADC). Aceasta înseamnă că Arduino poate citi 2 ^ 10 = 1024 niveluri de tensiune discrete.

Cu alte cuvinte, tensiunea aplicată pinului analogic al Arduino este eșantionat la 1024 nivele discrete de tensiune în raport cu o tensiune de referință pe care valoarea eșantionată o afișează pe LCD. Acesta este principiul din spatele acestui voltmetru sau aproape orice voltmetru digital.

Cu toate acestea, tensiunea externă aplicată nu este măsurată direct de Arduino. Tensiunea este redusă cu ajutorul divizoarelor de tensiune și unele programe de matematică se fac în program pentru a obține citirea tensiunii reale.

Cum functioneaza

Circuitul este format din două rezistențe, un afișaj LCD și un Arduino, care este creierul voltmetrului digital. Cele două rezistențe acționează ca divizor de tensiune, nodul divizorului este conectat la pinul analogic # A0 al Arduino, care citește tensiunea de intrare. Conexiunea la masă este stabilită între Arduino și sursa de tensiune externă.

Tensiunea minimă care poate fi măsurată de acest voltmetru este 0,1V, acest prag este setat în program, astfel încât să citească 0,00 volți după deconectarea sursei de tensiune și să nu afișeze citiri din cauza încărcării statice din jurul sondei de măsurare.

Prototipul autorului:

Rezultatele testului de voltmetru DC bazat pe Arduino

Nu inversați polaritatea în timp ce măsurați tensiunea, nu va afecta circuitul, dar nu citește nicio tensiune și afișează 0,00 V, până când nu corectați polaritatea. Reglați contrastul afișajului LCD la nivelul optim rotind potențiometrul.

Asigurați-vă că nu aplicați nicio sursă de tensiune care ar putea crește mai mult de 30V, aceasta ar putea deteriora placa Arduino. Din punct de vedere tehnic, puteți crește tensiunea maximă de măsurare a acestui circuit schimbând valorile rezistorului și modificând programul, dar pentru configurarea ilustrată 30V este limită.

Pentru o citire exactă, alegeți rezistențe fixe cu valoare minimă de toleranță, rezistențele joacă un rol important în calibrarea citirii tensiunii.

Diagrama circuitului:

Circuit de voltmetru DC bazat pe Arduino

Cealaltă posibilitate a acestui voltmetru este că putem modifica programul pentru a automatiza unele sarcini.

De exemplu, detectați tensiunea completă a bateriei și deconectați bateria de la încărcător sau deconectați bateria dacă tensiunea scade sub nivelul de tensiune prestabilit și așa mai departe, aceste sarcini pot fi realizate chiar și fără afișaj LCD. Cu toate acestea, acest lucru face obiectul unui alt articol.

Program:

//--------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---------//

Vă rugăm să verificați citirile cu un voltmetru / multimetru bun.




Precedent: Circuit de blocare aprindere auto Bluetooth - Protecție auto fără cheie Următorul: Circuit de alarmă magnetică de siguranță a ușii pentru a alerta dacă ușa a fost deschisă