- Nødvendige materialer:
- Arbeid med ACS712 nåværende sensor:
- Kretsdiagram:
- Simulering:
- Programmering av PIC Microcontroller:
- Jobber:
Måling av spenning og strøm vil alltid være nyttig når du lager eller feilsøker ethvert elektrisk system. I dette prosjektet skal vi lage vårt eget digitale amperemeter ved hjelp av PIC16F877A mikrokontroller og nåværende sensor ACS712-5A. Dette prosjektet kan måle både vekselstrøm og likestrøm med et område på 0-30A med en nøyaktighet på 0,3A. Med få modifikasjoner på koden kan du også bruke denne kretsen til å måle opp til 30A. Så la oss komme i gang !!!
Nødvendige materialer:
- PIC16F877A
- 7805 Spenningsregulator
- ACS712 nåværende sensor
- 16 * 2 LCD-skjerm
- En koblingsboks og last (bare for testing)
- Koble ledninger
- Kondensatorer
- Brettbrett.
- Strømforsyning - 12V
Arbeid med ACS712 nåværende sensor:
Før vi begynner å bygge prosjektet, er det veldig viktig for oss å forstå funksjonen til ACS712 Current sensor, siden den er nøkkelkomponenten i prosjektet. Å måle strøm, spesielt vekselstrøm, er alltid en tøff oppgave på grunn av støy kombinert med feilaktig isolasjonsproblem osv. Men med hjelp av denne ACS712-modulen som ble konstruert av Allegro har det blitt mye enklere.
Denne modulen fungerer på prinsippet om Hall-effekt, som ble oppdaget av Dr. Edwin Hall. I følge hans prinsipp, når en strømførende leder blir plassert i et magnetfelt, genereres en spenning over kantene vinkelrett på retningene til både strømmen og magnetfeltet. La oss ikke komme for dypt inn i konseptet, men ganske enkelt bruker vi en hallsensor til å måle magnetfeltet rundt en strømførende leder. Denne målingen vil være i form av millivolt som vi kalte som hall-spenning. Denne målte hall-spenningen er proporsjonal med strømmen som strømmer gjennom lederen.
Den største fordelen med å bruke ACS712 strømføler er at den kan måle både vekselstrøm og likestrøm, og den gir også isolasjon mellom belastning (vekselstrøm / likestrøm) og måleenhet (del av mikrokontroller). Som vist på bildet har vi tre pinner på modulen som er henholdsvis Vcc, Vout og Ground.
Den 2-pinners rekkeklemmen er der den strømførende ledningen skal føres gjennom. Modulen fungerer på + 5V, slik at Vcc skal drives av 5V og bakken skal være koblet til bakken på systemet. Vout-pinnen har en offset-spenning på 2500mV, noe som betyr at når det ikke strømmer strøm gjennom ledningen, vil utgangsspenningen være 2500mV, og når strømmen strømmer er positiv, vil spenningen være større enn 2500mV, og når strømmen er negativ, vil spenningen vil være mindre enn 2500mV.
Vi bruker ADC-modulen til PIC-mikrokontrolleren for å lese utgangsspenningen (Vout) til modulen, som vil være 512 (2500mV) når det ikke strømmer strøm gjennom ledningen. Denne verdien vil reduseres når strømmen strømmer i negativ retning og vil øke når strømmen strømmer i positiv retning. Tabellen nedenfor hjelper deg med å forstå hvordan utgangsspenningen og ADC-verdien varierer basert på strømmen som strømmer gjennom ledningen.
Disse verdiene ble beregnet basert på informasjonen gitt i databladet til ACS712. Du kan også beregne dem ved hjelp av formlene nedenfor:
Voutspenning (mV) = (ADC-verdi / 1023) * 5000 Strøm gjennom ledningen (A) = (Vout (mv) -2500) / 185
Nå som vi vet hvordan ACS712-sensoren fungerer og hva vi kan forvente av den. La oss gå videre til kretsskjemaet.
Kretsdiagram:
Det komplette kretsskjemaet for dette Digital Ammeter-prosjektet er vist på bildet nedenfor.
Den komplette digitale strømmålerkretsen fungerer på + 5V som reguleres av en 7805 spenningsregulator. Vi har brukt en 16X2 LCD for å vise verdien av strømmen. Utgangen tapp av den aktuelle sensor (Vout) er forbundet med 7 th pin av PIC som er AN4 å lese den analoge spenning.
Videre er pin-tilkoblingen for PIC vist i tabellen nedenfor
S. nei: |
PIN-kode |
Pin-navn |
Koblet til |
1 |
21 |
RD2 |
RS på LCD |
2 |
22 |
RD3 |
E av LCD |
3 |
27 |
RD4 |
D4 av LCD |
4 |
28 |
RD5 |
D5 av LCD |
5 |
29 |
RD6 |
D6 av LCD |
6 |
30 |
RD7 |
D7 av LCD |
7 |
7 |
AN4 |
Vout of Current Sesnor |
Du kan bygge denne digitale amperemeterkretsen på et brødbrett eller bruke et perf-kort. Hvis du har fulgt PIC-opplæringen, kan du også bruke maskinvaren som vi brukte til å lære PIC-mikrokontrollere. Her har vi brukt samme perf Board som vi har bygget for LED Blinking med PIC Microcontroller, som vist nedenfor:
Merk: Det er ikke obligatorisk for deg å bygge dette kortet, du kan ganske enkelt følge kretsskjemaet og bygge deg krets på et brødkort og bruke et dumpersett til å dumpe programmet ditt i PIC Microcontroller.
Simulering:
Denne nåværende målerkretsen kan også simuleres ved hjelp av Proteus før du faktisk fortsetter med maskinvaren. Tilordne heksefilen til koden gitt på slutten av denne opplæringen, og klikk på avspillingsknappen. Du bør kunne legge merke til strømmen på LCD-skjermen. Jeg har brukt en lampe som vekselstrøm, du kan variere lampens indre motstand ved å klikke på den for å variere strømmen som strømmer gjennom den.
Som du kan se på bildet ovenfor, viser Ammeteret den faktiske strømmen som strømmer gjennom lampen som er rundt 3,52 A, og LCD-skjermen viser at strømmen er rundt 3,6A. I praktisk tilfelle kan vi imidlertid få Feil opp til 0.2A. ADC-verdien og spenningen i (mV) vises også på LCD-skjermen for din forståelse.
Programmering av PIC Microcontroller:
Som fortalt tidligere, finner du den fullstendige koden på slutten av denne artikkelen. Koden er selv forklart med kommentarlinjer og involverer bare konseptet med å grense en LCD med PIC Microcontroller og bruke ADC-modul i PIC Microcontroller, som vi allerede har dekket i våre tidligere opplæringsprogrammer om PIC Microcontrollers.
Verdien som leses fra sensoren vil ikke være nøyaktig siden strømmen veksler og også utsettes for støy. Derfor leser vi ADC-verdien i 20 ganger og gjennomsnittlig den for å få den aktuelle strømverdien som vist i koden nedenfor.
Vi har brukt de samme formlene som ble forklart ovenfor for å beregne spenningen og strømverdien.
for (int i = 0; i <20; i ++) // Les verdi i 20 ganger {adc = 0; adc = ADC_Read (4); // Les ADC-spenning = adc * 4.8828; // Beregn spenningen hvis (Voltage> = 2500) // Hvis strømmen er positiv Amps + = ((Voltage-2500) /18.5); annet hvis (Voltage <= 2500) // Hvis strømmen er negativ Amps + = ((2500-Voltage) /18.5); } Forsterker / = 20; // Gjennomsnittlig verdien som ble lest i 20 ganger
Siden dette prosjektet også kan lese vekselstrøm, vil strømmen også være negativ og positiv. Det er verdien av utgangsspenningen vil være over og under 2500mV. Som vist nedenfor endrer vi derfor formlene for negativ og positiv strøm slik at vi ikke får negativ verdi.
if (Voltage> = 2500) // Hvis strømmen er positiv Amps + = ((Voltage-2500) /18.5); annet hvis (Voltage <= 2500) // Hvis strømmen er negativ Amps + = ((2500-Voltage) /18.5);
Ved hjelp av en 30A strømføler:
Hvis du trenger å måle strøm mer enn 5A, kan du ganske enkelt kjøpe en ACS712-30A-modul og grensesnittet på samme måte og endre kodelinjen nedenfor ved å erstatte 18.5 med 0.66 som vist nedenfor:
if (Voltage> = 2500) // Hvis strømmen er positiv Amps + = ((Voltage-2500) /0.66); annet hvis (Spenning <= 2500) // Hvis strømmen er negativ Ampere + = ((2500-spenning) /0,66);
Sjekk også 100mA amperemeter ved hjelp av AVR Microcontroller hvis du vil måle lav strøm.
Jobber:
Når du har programmert PIC Microcontroller og gjort maskinvaren klar. Bare slå på lasten og PIC-mikrokontrolleren din, du skal kunne se strømmen som går gjennom ledningen som vises på LCD-skjermen.
MERKNAD: HVIS du bruker en ASC7125A-modul, må du sørge for at lasten din ikke bruker mer enn 5A, og bruk også ledere med høyere måling for strømførende ledere.
Fullstendig bearbeiding av PIC-mikrocontrollerbasert amperemeterprosjekt er vist i videoen nedenfor. Håper du fikk prosjektet til å fungere og likte å gjøre det. Hvis du er i tvil, kan du skrive dem i kommentarseksjonen nedenfor eller legge dem ut på forumene våre.