- Potrebni materiali:
- Delovanje tokovnega senzorja ACS712:
- Shema vezja:
- Simulacija:
- Programiranje mikrokrmilnika PIC:
- Delo:
Merjenje napetosti in toka bo vedno v pomoč pri izdelavi ali odpravljanju napak katerega koli električnega sistema. V tem projektu bomo izdelali lasten digitalni ampermeter z uporabo mikrokrmilnika PIC16F877A in trenutnega senzorja ACS712-5A. Ta projekt lahko meri tako izmenični kot enosmerni tok v območju 0-30A z natančnostjo 0,3A. Z nekaj spremembami kode lahko to vezje uporabite tudi za merjenje do 30A. Začnimo torej !!!
Potrebni materiali:
- PIC16F877A
- 7805 Regulator napetosti
- ACS712 trenutni senzor
- 16 * 2 LCD zaslon
- Razvodna škatla in obremenitev (samo za preskušanje)
- Priključne žice
- Kondenzatorji
- Breadboard.
- Napajanje - 12V
Delovanje tokovnega senzorja ACS712:
Preden začnemo graditi projekt, je za nas zelo pomembno, da razumemo delovanje tokovnega senzorja ACS712, saj je ključna komponenta projekta. Merjenje toka, zlasti izmeničnega toka, je vedno težka naloga zaradi hrupa, ki je povezan z njim, zaradi neustrezne izolacijske težave itd. Toda s pomočjo tega modula ACS712, ki ga je zasnoval Allegro, je postalo veliko lažje.
Ta modul deluje po principu Hallovega učinka, ki ga je odkril dr. Edwin Hall. Po njegovem principu, ko je tokovni vodnik nameščen v magnetno polje, se na njegovih robovih ustvari napetost, pravokotna na smeri toka in magnetnega polja. Ne poglabljajmo se globoko v koncept, ampak preprosto povedano uporabljamo Hallov senzor za merjenje magnetnega polja okoli tokovnega vodnika. Ta meritev bo izražena v milivoltih, ki smo jih imenovali napetost dvorane. Ta izmerjena napetost dvorane je sorazmerna s tokom, ki je tekel skozi vodnik.
Glavna prednost uporabe tokovnega senzorja ACS712 je v tem, da lahko meri tako izmenični kot enosmerni tok, hkrati pa zagotavlja tudi izolacijo med obremenitvijo (AC / DC obremenitev) in merilno enoto (del mikrokrmilnika). Kot je prikazano na sliki, imamo na modulu tri zatiče, in sicer Vcc, Vout in Ground.
2-polni priključni blok je kraj, kjer je treba voditi tokovno žico. Modul deluje na + 5V, zato mora biti Vcc napajan s 5V, ozemljitev pa mora biti priključena na ozemljitev sistema. Voutov zatič ima odmično napetost 2500mV, kar pomeni, da ko skozi žico ne teče tok, bo izhodna napetost 2500mV in če je tok, ki teče pozitivno, napetost večja od 2500mV in ko je tok, ki teče, negativen, napetost bo manjša od 2500mV.
Z modulom ADC mikrokrmilnika PIC bomo odčitavali izhodno napetost (Vout) modula, ki bo, ko skozi žico ne teče tok, znašala 512 (2500mV). Ta vrednost se bo zmanjšala, ko bo tok tekel v negativni smeri, in se bo povečala, ko bo tok tekel v pozitivno smer. Spodnja tabela vam bo pomagala razumeti, kako se izhodna napetost in vrednost ADC spreminja glede na tok, ki teče skozi žico.
Te vrednosti so bile izračunane na podlagi informacij iz podatkovnega lista ACS712. Izračunate jih lahko tudi po spodnjih formulah:
Vout napetost (mV) = (vrednost ADC / 1023) * 5000 tok skozi žico (A) = (Vout (mv) -2500) / 185
Zdaj, ko vemo, kako deluje senzor ACS712 in kaj lahko pričakujemo od njega. Pojdimo na diagram vezja.
Shema vezja:
Popoln diagram vezja tega projekta digitalnega ampermetra je prikazan na spodnji sliki.
Celotno vezje digitalnega merilnika toka deluje na + 5V, ki ga regulira regulator napetosti 7805. Za prikaz vrednosti toka smo uporabili LCD 16X2. Izhodni pin tokovnega zaznavala (Vout) je priključen na 7 th pin PIC, ki je AN4 za branje analogni napetostni.
Nadalje je v spodnji tabeli prikazan pin priključek za PIC
S. Št: |
PIN številka |
Pripnite ime |
Povezan z |
1. |
21. |
RD2 |
RS LCD |
2. |
22. |
RD3 |
E LCD |
3. |
27. |
RD4 |
D4 LCD |
4. |
28. |
RD5 |
D5 LCD |
5. |
29. |
RD6 |
D6 LCD |
6. |
30. |
RD7 |
D7 LCD |
7. |
7. |
AN4 |
Glasuj za sedanjega Sesnorja |
To vezje digitalnega ampermetra lahko zgradite na plošči ali uporabite ploščo za perf. Če ste sledili vadnicam PIC, lahko tudi ponovno uporabite strojno opremo, ki smo jo uporabili za učenje mikrokrmilnikov PIC. Tu smo uporabili isto perf ploščo, ki smo jo zgradili za LED utripanje z mikrokrmilnikom PIC, kot je prikazano spodaj:
Opomba: Za izdelavo te plošče ni obvezno, lahko preprosto sledite shemi vezja in sestavite vezje na plošči za kruh ter uporabite kateri koli komplet za prekucanje, da svoj program odložite v mikrokrmilnik PIC.
Simulacija:
To vezje trenutnega števca lahko simulirate tudi s pomočjo Proteusa, preden dejansko nadaljujete s strojno opremo. Dodelite šestnajstiško datoteko kode, podane na koncu te vadnice, in kliknite gumb za predvajanje. Na LCD zaslonu bi morali opaziti tok. Žarnico sem uporabil kot izmenično obremenitev, lahko spremenite notranji upor žarnice tako, da kliknete nanjo, da spremenite tok, ki teče skozi njo.
Kot lahko vidite na zgornji sliki, ampermeter prikazuje dejanski tok, ki teče skozi žarnico, ki znaša približno 3,52 A, LCD pa kaže, da je tok približno 3,6 A. Vendar lahko v praktičnem primeru dobimo napako do 0,2A. Vrednost ADC in napetost v (mV) sta za razumevanje prikazana tudi na LCD-prikazovalniku.
Programiranje mikrokrmilnika PIC:
Kot smo že povedali, lahko celotno kodo najdete na koncu tega članka. Koda je samoumevna s komentarji in vključuje samo koncept povezovanja LCD-ja z mikrokrmilnikom PIC in uporabo modula ADC v mikrokrmilniku PIC, o čemer smo že govorili v prejšnjih vajah o učenju mikrokrmilnikov PIC.
Vrednost, odčitana s senzorja, ne bo točna, saj je tok izmeničen in je tudi izpostavljen hrupu. Zato vrednost ADC beremo 20-krat in jo povprečimo, da dobimo ustrezno trenutno vrednost, kot je prikazano v spodnji kodi.
Za izračun napetosti in trenutne vrednosti smo uporabili enake formule, ki so bile razložene zgoraj.
for (int i = 0; i <20; i ++) // 20-krat prebrana vrednost {adc = 0; adc = ADC_Read (4); // Preberemo napetost ADC = adc * 4.8828; // izračunamo napetost, če je (napetost> = 2500) // če je tok pozitiven Amps + = ((napetost-2500) /18,5); sicer če (Napetost <= 2500) // Če je tok negativen Amperi + = ((2500-Napetost) /18,5); } Amperi / = 20; // Povprečna vrednost, ki je bila prebrana 20-krat
Ker lahko ta projekt bere tudi izmenični tok, bo trenutni tok tudi negativen in pozitiven. To je vrednost izhodne napetosti nad in pod 2500mV. Kot je prikazano spodaj, spremenimo formule negativnega in pozitivnega toka, tako da ne dobimo negativne vrednosti.
if (Voltage> = 2500) // Če je tok pozitiven Amps + = ((Voltage-2500) /18.5); sicer če (Napetost <= 2500) // Če je tok negativen Amperi + = ((2500-Napetost) /18,5);
Uporaba 30A tokovnega senzorja:
Če morate izmeriti tok več kot 5A, lahko preprosto kupite modul ACS712-30A in ga povežete na enak način ter spremenite spodnjo vrstico kode tako, da zamenjate 18,5 z 0,66, kot je prikazano spodaj:
if (Voltage> = 2500) // Če je tok pozitiven Amps + = ((Voltage-2500) /0.66); sicer če (Napetost <= 2500) // Če je tok negativen Amperi + = ((2500-Napetost) /0,66);
Če želite izmeriti nizek tok, preverite tudi ampermeter 100 mA z mikrokrmilnikom AVR.
Delo:
Ko programirate mikrokrmilnik PIC in pripravite svojo strojno opremo. Preprosto vklopite obremenitev in mikrokrmilnik PIC, da boste lahko videli tok, ki teče skozi žico, prikazano na zaslonu LCD.
OPOMBA: ČE uporabljate modul ASC7125A, poskrbite, da vaša obremenitev ne porabi več kot 5A, uporabite tudi žice višjega profila za vodnike toka.
Popolno delovanje projekta ampermetra na osnovi mikrokrmilnika je prikazano v spodnjem videu. Upam, da ste projekt delali in ste ga uživali. Če dvomite, jih lahko napišete v spodnjem oddelku za komentarje ali objavite na naših forumih.