- Materiale necesare:
- Funcționarea senzorului de curent ACS712:
- Diagrama circuitului:
- Simulare:
- Programarea microcontrolerului PIC:
- Lucru:
Măsurarea tensiunii și curentului va fi întotdeauna utilă la realizarea sau depanarea oricărui sistem electric. În acest proiect vom realiza propriul nostru ampermetru digital folosind microcontrolerul PIC16F877A și senzorul de curent ACS712-5A. Acest proiect poate măsura atât curent alternativ, cât și curent continuu cu o gamă de 0-30A cu o precizie de 0,3A. Cu câteva modificări ale codului, puteți utiliza și acest circuit pentru a măsura până la 30A. Așa că hai să începem !!!
Materiale necesare:
- PIC16F877A
- 7805 Regulator de tensiune
- Senzor de curent ACS712
- Afisaj LCD 16 * 2
- O cutie de joncțiune și încărcare (Doar pentru testare)
- Conectarea firelor
- Condensatoare
- Breadboard.
- Alimentare - 12V
Funcționarea senzorului de curent ACS712:
Înainte de a începe construirea proiectului, este foarte important pentru noi să înțelegem funcționarea senzorului de curent ACS712, deoarece este componenta cheie a proiectului. Măsurarea curentului, în special a curentului alternativ, este întotdeauna o sarcină dificilă datorită zgomotului cuplat cu problema de izolare necorespunzătoare etc. Dar, cu ajutorul acestui modul ACS712, care a fost proiectat de Allegro, lucrurile au devenit mult mai ușoare.
Acest modul funcționează pe principiul efectului Hall, care a fost descoperit de Dr. Edwin Hall. Potrivit principiului său, atunci când un conductor de transport al curentului este plasat într-un câmp magnetic, se generează o tensiune pe marginile sale perpendiculare pe direcțiile atât ale curentului, cât și ale câmpului magnetic. Să nu intrăm prea adânc în concept, ci, pur și simplu, folosim un senzor de hală pentru a măsura câmpul magnetic în jurul unui conductor de transport de curent. Această măsurare va fi în termeni de milivolți pe care i-am numit tensiunea de hală. Această tensiune hall măsurată este proporțională cu curentul care curgea prin conductor.
Avantajul major al utilizării senzorului de curent ACS712 este acela că poate măsura atât curent alternativ, cât și curent continuu și oferă, de asemenea, izolare între sarcină (sarcină AC / DC) și unitate de măsurare (partea microcontrolerului). După cum se arată în imagine, avem trei pini pe modul care sunt Vcc, Vout și respectiv Ground.
Blocul de borne cu 2 pini este locul prin care ar trebui să fie trecut firul de transport curent. Modulul funcționează pe + 5V, astfel încât Vcc ar trebui să fie alimentat de 5V și solul să fie conectat la masă a sistemului. Pinul Vout are o tensiune de offset de 2500mV, adică atunci când nu curge curent prin fir, atunci tensiunea de ieșire va fi de 2500mV și când curentul curge este pozitiv, tensiunea va fi mai mare de 2500mV și când curentul care curge este negativ, tensiunea va fi mai mică de 2500mV.
Vom folosi modulul ADC al microcontrolerului PIC pentru a citi tensiunea de ieșire (Vout) a modulului, care va fi 512 (2500mV) atunci când nu curge curent prin fir. Această valoare se va reduce pe măsură ce curentul curge în direcție negativă și va crește pe măsură ce curentul curge în direcție pozitivă. Tabelul de mai jos vă va ajuta să înțelegeți cum variază tensiunea de ieșire și valoarea ADC în funcție de curentul care trece prin fir.
Aceste valori au fost calculate pe baza informațiilor furnizate în Fișa tehnică a ACS712. De asemenea, le puteți calcula folosind formulele de mai jos:
Tensiune Vout (mV) = (valoare ADC / 1023) * 5000 curent prin fir (A) = (Vout (mv) -2500) / 185
Acum, că știm cum funcționează senzorul ACS712 și la ce ne-am putea aștepta de la acesta. Să trecem la schema circuitului.
Diagrama circuitului:
Schema completă a circuitului acestui proiect al amperometrului digital este prezentată în imaginea de mai jos.
Circuitul digital complet al contorului de curent funcționează pe + 5V, care este reglat de un regulator de tensiune 7805. Am folosit un LCD 16X2 pentru a afișa valoarea curentului. PIN - ul de ieșire a curentului senzorului (Vout) este conectat la 7 - lea PIN - ul PIC care este AN4 pentru a citi tensiune analogic.
Mai departe conexiunea pin pentru PIC este prezentată în tabelul de mai jos
S. Nu: |
Numarul pin |
Nume PIN |
Conectat la |
1 |
21 |
RD2 |
RS de LCD |
2 |
22 |
RD3 |
E de LCD |
3 |
27 |
RD4 |
D4 de LCD |
4 |
28 |
RD5 |
D5 de LCD |
5 |
29 |
RD6 |
D6 de LCD |
6 |
30 |
RD7 |
D7 de LCD |
7 |
7 |
AN4 |
Voutul Sesnorului curent |
Puteți construi acest circuit amperimetru digital pe o placă de calcul sau puteți utiliza o placă perf. Dacă ați urmat tutorialele PIC, puteți reutiliza și hardware-ul pe care l-am folosit pentru învățarea microcontrolerelor PIC. Aici am folosit aceeași placă de perfecționare pe care am construit-o pentru LED-ul intermitent cu microcontroler PIC, așa cum se arată mai jos:
Notă: Nu este obligatoriu să construiți această placă, puteți pur și simplu să urmați schema de circuit și să vă construiți circuitul pe o placă de pâine și să utilizați orice kit de basculantă pentru a arunca programul în microcontrolerul PIC.
Simulare:
Acest circuit de măsurare a curentului poate fi, de asemenea, simulat folosind Proteus înainte de a continua cu hardware-ul dvs. Alocați fișierul hexagonal al codului dat la sfârșitul acestui tutorial și faceți clic pe butonul de redare. Ar trebui să puteți observa curentul pe ecranul LCD. Am folosit o lampă ca o sarcină de curent alternativ, puteți varia rezistența internă a lămpii făcând clic pe ea pentru a varia curentul care curge prin ea.
După cum puteți vedea în imaginea de mai sus, ampermetrul arată curentul real care curge prin lampă, care este în jur de 3,52 A, iar ecranul LCD arată curentul în jurul valorii de 3,6A. Cu toate acestea, în cazul în care practic am putea lua de eroare de până la 0.2A. Valoarea ADC și tensiunea în (mV) sunt, de asemenea, afișate pe ecranul LCD pentru înțelegere.
Programarea microcontrolerului PIC:
După cum am spus mai devreme, codul complet poate fi găsit la sfârșitul acestui articol. Codul este explicat de sine cu linii de comentarii și implică doar conceptul de interfață a unui LCD cu microcontrolerul PIC și utilizarea modulului ADC în microcontrolerul PIC, pe care l-am acoperit deja în tutorialele noastre anterioare de învățare a microcontrolerelor PIC.
Valoarea citită de la senzor nu va fi precisă, deoarece curentul alternează și este, de asemenea, supus zgomotului. Prin urmare, citim valoarea ADC pentru 20 de ori și o calculăm pentru a obține valoarea curentă corespunzătoare, așa cum se arată în codul de mai jos.
Am folosit aceleași formule care au fost explicate mai sus pentru a calcula valoarea tensiunii și curentului.
for (int i = 0; i <20; i ++) // Citește valoarea de 20 de ori {adc = 0; adc = ADC_Read (4); // Citiți tensiunea ADC = adc * 4.8828; // Calculați tensiunea dacă (Tensiune> = 2500) // Dacă curentul este pozitiv Amperi + = ((Tensiune-2500) /18,5); altfel if (Tensiune <= 2500) // Dacă curentul este negativ Amperi + = ((2500-Tensiune) /18,5); } Amperi / = 20; // Valoarea medie a fost citită de 20 de ori
Deoarece acest proiect poate citi și curent alternativ, fluxul curent va fi și negativ și pozitiv. Aceasta este valoarea tensiunii de ieșire va fi peste și sub 2500mV. Prin urmare, așa cum se arată mai jos, schimbăm formulele pentru curent negativ și pozitiv, astfel încât să nu obținem valoare negativă.
if (Tensiune> = 2500) // Dacă curentul este pozitiv Amperi + = ((Tensiune-2500) /18,5); altfel if (Tensiune <= 2500) // Dacă curentul este negativ Amperi + = ((2500-Tensiune) /18,5);
Folosind un senzor de curent 30A:
Dacă trebuie să măsurați curentul mai mult de 5A, puteți cumpăra pur și simplu un modul ACS712-30A și îl puteți interfața în același mod și puteți schimba linia de cod de mai jos, înlocuind 18,5 cu 0,66, așa cum se arată mai jos:
if (Tensiune> = 2500) // Dacă curentul este pozitiv Amperi + = ((Tensiune-2500) /0,66); else if (Tensiune <= 2500) // Dacă curentul este negativ Amperi + = ((2500-Tensiune) /0,66);
De asemenea, verificați Amperometrul de 100mA folosind microcontrolerul AVR dacă doriți să măsurați curent redus.
Lucru:
După ce ați programat microcontrolerul PIC și ați pregătit hardware-ul. Pur și simplu porniți încărcătura și microcontrolerul PIC, ar trebui să puteți vedea curentul care trece prin firul afișat pe ecranul LCD.
NOTĂ: DACĂ utilizați un modul ASC7125A, asigurați-vă că încărcătura dvs. nu consumă mai mult de 5A, de asemenea, utilizați fire cu ecartament mai mare pentru conductorii de curent.
Funcționarea completă a proiectului de ampermetru bazat pe microcontroler PIC este prezentată în videoclipul de mai jos. Sper că ați pus în funcțiune proiectul și v-a plăcut să îl faceți. Dacă aveți îndoieli, le puteți scrie în secțiunea de comentarii de mai jos sau le puteți posta pe forumurile noastre.