- Material som krävs:
- Arbeta med ACS712 nuvarande sensor:
- Kretsschema:
- Simulering:
- Programmering av PIC Microcontroller:
- Arbetssätt:
Mätning av spänning och ström kommer alltid att vara till hjälp när du gör eller felsöker alla elektriska system. I det här projektet ska vi skapa vår egen digitala amperemätare med PIC16F877A mikrokontroller och strömgivare ACS712-5A. Detta projekt kan mäta både växelström och likström med ett intervall på 0-30A med en noggrannhet på 0,3A. Med få modifieringar på koden kan du också använda denna krets för att mäta upp till 30A. Så låt oss komma igång !!!
Material som krävs:
- PIC16F877A
- 7805 Spänningsregulator
- ACS712 strömgivare
- 16 * 2 LCD-skärm
- En kopplingsdosa och last (bara för testning)
- Anslutande ledningar
- Kondensatorer
- Bakbord.
- Strömförsörjning - 12V
Arbeta med ACS712 nuvarande sensor:
Innan vi börjar bygga projektet är det mycket viktigt för oss att förstå hur ACS712-strömgivaren fungerar eftersom den är den viktigaste komponenten i projektet. Att mäta ström, särskilt växelström, är alltid en tuff uppgift på grund av bruset i kombination med felaktig isoleringsproblem etc. Men med hjälp av denna ACS712-modul som konstruerats av Allegro har det blivit mycket enklare.
Denna modul fungerar på principen om Hall-effekt, som upptäcktes av Dr. Edwin Hall. Enligt en princip, när en strömbärande ledare placeras i ett magnetfält, genereras en spänning över dess kanter vinkelrätt mot riktningarna för både strömmen och magnetfältet. Låt oss inte komma för djupt in i konceptet, men helt enkelt använder vi en hallsensor för att mäta magnetfältet runt en strömförande ledare. Denna mätning kommer att vara i termer av millivolt som vi kallade för hallspänning. Denna uppmätta hallspänning är proportionell mot strömmen som flödade genom ledaren.
Den största fördelen med att använda ACS712 strömgivare är att den kan mäta både växelström och likström och det ger också isolering mellan belastningen (växelström / likström) och mätenheten (mikrokontroller-del). Som visas på bilden har vi tre stift på modulen som är Vcc, Vout respektive Ground.
Det 2-poliga kopplingsplinten är där den strömförande kabeln ska föras igenom. Modulen fungerar på + 5V så att Vcc ska drivas med 5V och marken ska anslutas till systemets jord. Vout-stiftet har en offset-spänning på 2500mV, vilket betyder att när ingen ström strömmar genom ledningen kommer utspänningen att vara 2500mV och när strömmen är positiv är spänningen större än 2500mV och när strömmen är negativ är spänningen blir mindre än 2500mV.
Vi kommer att använda ADC-modulen på PIC-mikrokontrollern för att läsa utgångsspänningen (Vout) på modulen, vilken kommer att vara 512 (2500mV) när ingen ström strömmar genom ledningen. Detta värde kommer att minska när strömmen flyter i negativ riktning och kommer att öka när strömmen flyter i positiv riktning. Tabellen nedan hjälper dig att förstå hur utspänningen och ADC-värdet varierar baserat på strömmen som strömmar genom ledningen.
Dessa värden beräknades baserat på informationen i databladet för ACS712. Du kan också beräkna dem med formlerna nedan:
Voutspänning (mV) = (ADC-värde / 1023) * 5000 Ström genom ledningen (A) = (Vout (mv) -2500) / 185
Nu när vi vet hur ACS712-sensorn fungerar och vad vi kan förvänta oss av den. Låt oss gå vidare till kretsschemat.
Kretsschema:
Det fullständiga kretsschemat för detta Digital Ammeter-projekt visas i bilden nedan.
Den kompletta digitala strömmätarkretsen fungerar på + 5V som regleras av en 7805 spänningsregulator. Vi har använt en 16X2 LCD för att visa värdet på strömmen. Strömssensorns utgång (Vout) är ansluten till den 7: e stiftet på PIC som är AN4 för att läsa den analoga spänningen.
Vidare visas stiftanslutningen för PIC i tabellen nedan
S. nej: |
Pinkod |
Pin-namn |
Anslutna till |
1 |
21 |
RD2 |
RS på LCD |
2 |
22 |
RD3 |
E av LCD |
3 |
27 |
RD4 |
D4 på LCD |
4 |
28 |
RD5 |
D5 på LCD |
5 |
29 |
RD6 |
D6 på LCD |
6 |
30 |
RD7 |
D7 på LCD |
7 |
7 |
AN4 |
Vout of Current Sesnor |
Du kan bygga den här digitala amperemätarkretsen på ett brödbräda eller använda ett perf-kort. Om du har följt PIC-självstudierna kan du också återanvända hårdvaran som vi använde för att lära oss PIC-mikrokontroller. Här har vi använt samma perf Board som vi har byggt för LED Blinking med PIC Microcontroller, som visas nedan:
Obs! Det är inte obligatoriskt för dig att bygga detta kort, du kan helt enkelt följa kretsschemat och bygga dig krets på ett brödkort och använda valfri dumper-kit för att dumpa ditt program i PIC Microcontroller.
Simulering:
Denna strömmätarkrets kan också simuleras med Proteus innan du faktiskt fortsätter med din hårdvara. Tilldela hex-filen för koden som ges i slutet av denna handledning och klicka på play-knappen. Du bör kunna märka strömmen på LCD-skärmen. Jag har använt en lampa som växelströmsbelastning, du kan variera lampans interna motstånd genom att klicka på den för att variera strömmen som strömmar genom den.
Som du kan se i bilden ovan visar amperemätaren den faktiska strömmen som strömmar genom lampan, vilket är cirka 3,52 A och LCD-skärmen visar att strömmen ska ligga runt 3,6 A. Men i praktiken kan vi få Fel upp till 0.2A. ADC-värdet och spänningen i (mV) visas också på LCD-skärmen för din förståelse.
Programmering av PIC Microcontroller:
Som tidigare sagt kan den fullständiga koden hittas i slutet av den här artikeln. Koden är självförklarad med kommentarrader och involverar bara konceptet att koppla ihop en LCD med PIC Microcontroller och använda ADC-modulen i PIC Microcontroller som vi redan har täckt i våra tidigare tutorials om inlärning av PIC Microcontrollers.
Det avlästa värdet från sensorn kommer inte att vara korrekt eftersom strömmen växlar och också utsätts för brus. Därför läser vi ADC-värdet i 20 gånger och genomsnittar det för att få rätt aktuellt värde som visas i koden nedan.
Vi har använt samma formler som förklarades ovan för att beräkna spänningen och strömvärdet.
för (int i = 0; i <20; i ++) // Läsvärde för 20 gånger {adc = 0; adc = ADC_Read (4); // Läs ADC-spänning = adc * 4.8828; // Beräkna spänningen om (Spänning> = 2500) // Om strömmen är positiv Förstärkare + = ((Spänning-2500) /18,5); annars om (Spänning <= 2500) // Om strömmen är negativ Förstärkare + = ((2500-spänning) /18,5); } Förstärkare / = 20; // Genomsnittligt värdet som lästes 20 gånger
Eftersom detta projekt också kan läsa växelström kommer strömflödet att vara negativt och positivt också. Det är värdet på utspänningen som kommer att vara över och under 2500mV. Därför ändrar vi, som visas nedan, formlerna för negativ och positiv ström så att vi inte får negativt värde.
if (Voltage> = 2500) // Om strömmen är positiv Amps + = ((Voltage-2500) /18.5); annars om (Spänning <= 2500) // Om strömmen är negativ Förstärkare + = ((2500-spänning) /18,5);
Använda en 30A strömgivare:
Om du behöver mäta ström mer än 5A kan du helt enkelt köpa en ACS712-30A-modul och ansluta den på samma sätt och ändra kodraden nedan genom att ersätta 18,5 med 0,66 som visas nedan:
if (Voltage> = 2500) // Om strömmen är positiv Amps + = ((Voltage-2500) /0.66); annars om (Spänning <= 2500) // Om strömmen är negativ Förstärkare + = ((2500-spänning) /0,66);
Kontrollera även 100mA amperemätare med AVR Microcontroller om du vill mäta låg ström.
Arbetssätt:
När du har programmerat PIC Microcontroller och gjort din hårdvara klar. Slå bara på lasten och din PIC-mikrokontroller, du borde kunna se strömmen som passerar genom kabeln som visas på din LCD-skärm.
OBS: Om du använder en ASC7125A-modul, se till att din last inte förbrukar mer än 5A, använd också ledningar med högre mätare för strömförande ledare.
Det fullständiga arbetet med det PIC-mikrokontrollerbaserade amperemeterprojektet visas i videon nedan. Hoppas du fick projektet att fungera och tyckte om att göra det. Om du är osäker kan du skriva dem i kommentarsektionen nedan eller lägga upp dem på våra forum.