- Vereiste materialen:
- Werking van ACS712 stroomsensor:
- Schakelschema:
- Simulatie:
- Programmering van de PIC-microcontroller:
- Werken:
Het meten van de spanning en stroom zal altijd handig zijn bij het maken of debuggen van een elektrisch systeem. In dit project gaan we onze eigen digitale ampèremeter maken met behulp van de PIC16F877A microcontroller en stroomsensor ACS712-5A. Dit project kan zowel AC- als DC-stroom meten met een bereik van 0-30A met een nauwkeurigheid van 0,3A. Met enkele aanpassingen aan de code kun je deze schakeling ook gebruiken om tot 30A te meten. Dus laten we beginnen !!!
Vereiste materialen:
- PIC16F877A
- 7805 Spanningsregelaar
- ACS712 stroomsensor
- 16 * 2 LCD-scherm
- Een aansluitdoos en lading (alleen voor testen)
- Draden aansluiten
- Condensatoren
- Breadboard.
- Voeding - 12V
Werking van ACS712 stroomsensor:
Voordat we beginnen met de bouw van het project, is het erg belangrijk dat we de werking van de ACS712 stroomsensor begrijpen, aangezien dit het belangrijkste onderdeel van het project is. Het meten van stroom, vooral wisselstroom, is altijd een zware taak vanwege de ruis die ermee gepaard gaat, een onjuist isolatieprobleem enz. Maar met de hulp van deze ACS712-module die door Allegro is ontwikkeld, is het een stuk eenvoudiger geworden.
Deze module werkt volgens het principe van Hall-effect, dat werd ontdekt door Dr. Edwin Hall. Volgens zijn principe wordt, wanneer een stroomvoerende geleider in een magnetisch veld wordt geplaatst, een spanning opgewekt over zijn randen loodrecht op de richtingen van zowel het stroom- als het magnetische veld. Laten we niet te diep op het concept ingaan, maar simpel gezegd gebruiken we een Hall-sensor om het magnetische veld rond een stroomvoerende geleider te meten. Deze meting zal in millivolt zijn, die we de hall-spanning noemden. Deze gemeten Hall-spanning is evenredig met de stroom die door de geleider vloeide.
Het grote voordeel van het gebruik van de ACS712 stroomsensor is dat deze zowel AC- als DC-stroom kan meten en ook isolatie biedt tussen de belasting (AC / DC-belasting) en de meeteenheid (microcontroller-onderdeel). Zoals op de afbeelding te zien is, hebben we drie pinnen op de module die respectievelijk Vcc, Vout en Ground zijn.
Het 2-pins aansluitblok is waar de stroomvoerende draad doorheen moet. De module werkt op + 5V, dus de Vcc moet worden gevoed door 5V en de aarde moet worden verbonden met de aarde van het systeem. De Vout-pin heeft een offsetspanning van 2500mV, wat betekent dat wanneer er geen stroom door de draad vloeit, de uitgangsspanning 2500mV zal zijn en wanneer de stroom positief is, zal de spanning groter zijn dan 2500mV en wanneer de stroom negatief is, zal de spanning zal minder zijn dan 2500mV.
We zullen de ADC-module van de PIC-microcontroller gebruiken om de uitgangsspanning (Vout) van de module te lezen, die 512 (2500mV) zal zijn als er geen stroom door de draad loopt. Deze waarde neemt af naarmate de stroom in negatieve richting vloeit en neemt toe naarmate de stroom in positieve richting vloeit. De onderstaande tabel helpt u te begrijpen hoe de uitgangsspanning en ADC-waarde variëren op basis van de stroom die door de draad vloeit.
Deze waarden zijn berekend op basis van de informatie in de Datasheet van ACS712. U kunt ze ook berekenen met behulp van de onderstaande formules:
Vout-spanning (mV) = (ADC-waarde / 1023) * 5000 Stroom door de draad (A) = (Vout (mv) -2500) / 185
Nu we weten hoe de ACS712-sensor werkt en wat we ervan kunnen verwachten. Laten we verder gaan met het schakelschema.
Schakelschema:
Het volledige schakelschema van dit digitale ampèremeterproject wordt weergegeven in de onderstaande afbeelding.
Het complete digitale stroommeterschakeling werkt op + 5V die wordt geregeld door een 7805 spanningsregelaar. We hebben een 16x2 LCD gebruikt om de waarde van de stroom weer te geven. De uitgangspen van de huidige sensor (Vout) is verbonden met de 7e pin van de PIC, de AN4 om de analoge spanning te lezen.
Verder wordt de pinverbinding voor de PIC weergegeven in de onderstaande tabel
S.Nee: |
Pincode |
Pin Naam |
Verbonden met |
1 |
21 |
RD2 |
RS van LCD |
2 |
22 |
RD3 |
E van LCD |
3 |
27 |
RD4 |
D4 van LCD |
4 |
28 |
RD5 |
D5 van LCD |
5 |
29 |
RD6 |
D6 van LCD |
6 |
30 |
RD7 |
D7 van LCD |
7 |
7 |
AN4 |
Vout van het huidige Sesnor |
Je kunt dit digitale ampèremeter-circuit op een breadboard bouwen of een perf-board gebruiken. Als je de PIC-tutorials hebt gevolgd, kun je ook de hardware hergebruiken die we hebben gebruikt om PIC-microcontrollers te leren. Hier hebben we dezelfde perf Board gebruikt die we hebben gebouwd voor LED Blinking met PIC Microcontroller, zoals hieronder getoond:
Opmerking: het is niet verplicht voor u om dit bord te bouwen, u kunt gewoon het schakelschema volgen en uw circuit op een breadboard bouwen en een willekeurige dumper-kit gebruiken om uw programma in de PIC Microcontroller te dumpen.
Simulatie:
Dit circuit van de stroommeter kan ook worden gesimuleerd met Proteus voordat u daadwerkelijk verder gaat met uw hardware. Wijs het hex-bestand van de code aan het einde van deze tutorial toe en klik op de afspeelknop. U zou de stroom op het LCD-scherm moeten kunnen zien. Ik heb een lamp als wisselstroombelasting gebruikt, je kunt de interne weerstand van de lamp variëren door erop te klikken om de stroom die er doorheen stroomt te variëren.
Zoals je kunt zien in de bovenstaande afbeelding, toont de ampèremeter de werkelijke stroom die door de lamp vloeit, die ongeveer 3,52 A is en het LCD-scherm toont dat de stroom ongeveer 3,6 A is. In de praktijk kunnen we echter een fout tot 0.2A krijgen. De ADC-waarde en het voltage in (mV) worden voor uw begrip ook op het LCD-scherm weergegeven.
Programmering van de PIC-microcontroller:
Zoals eerder verteld, staat de volledige code aan het einde van dit artikel. De code is zelf uitgelegd met commentaarregels en omvat alleen het concept van het koppelen van een LCD met PIC Microcontroller en het gebruik van de ADC-module in PIC Microcontroller, die we al hebben behandeld in onze vorige tutorials over het leren van PIC Microcontrollers.
De waarde die van de sensor wordt afgelezen, is niet nauwkeurig omdat de stroom wisselt en ook onderhevig is aan ruis. Daarom lezen we de ADC-waarde voor 20 keer en het gemiddelde om de juiste huidige waarde te krijgen, zoals weergegeven in de onderstaande code.
We hebben dezelfde formules gebruikt die hierboven werden uitgelegd om de spanning en stroomwaarde te berekenen.
for (int i = 0; i <20; i ++) // Lees waarde voor 20 keer {adc = 0; adc = ADC_Read (4); // Lees ADC-spanning = adc * 4.8828; // Bereken de spanning als (Spanning> = 2500) // Als de stroom positief is Ampère + = ((Spanning-2500) /18,5); anders als (Spanning <= 2500) // Als de stroom negatief is Ampère + = ((2500-Spanning) /18,5); } Ampère / = 20; // Het gemiddelde van de waarde die 20 keer is gelezen
Aangezien dit project ook wisselstroom kan lezen, zal de stroom ook negatief en positief zijn. Dat is de waarde van de uitgangsspanning zal boven en onder 2500mV zijn. Daarom veranderen we, zoals hieronder getoond, de formules voor negatieve en positieve stroom zodat we geen negatieve waarde krijgen.
if (Spanning> = 2500) // Als de stroom positief is Ampère + = ((Spanning-2500) /18,5); anders als (Spanning <= 2500) // Als de stroom negatief is Ampère + = ((2500-Spanning) /18,5);
Met behulp van een 30A stroomsensor:
Als u een stroom van meer dan 5A moet meten, kunt u eenvoudig een ACS712-30A-module kopen en deze op dezelfde manier aansluiten en de onderstaande coderegel wijzigen door 18.5 te vervangen door 0.66, zoals hieronder wordt weergegeven:
if (Spanning> = 2500) // Als de stroom positief is Ampère + = ((Spanning-2500) / 0,66); anders als (Spanning <= 2500) // Als de stroom negatief is Ampère + = ((2500-Spanning) / 0,66);
Controleer ook de 100mA Ampèremeter met AVR Microcontroller als u lage stroom wilt meten.
Werken:
Nadat u de PIC Microcontroller heeft geprogrammeerd en uw hardware gereed heeft gemaakt. Schakel gewoon de belasting in en uw PIC-microcontroller, u zou de stroom moeten kunnen zien die door de draad gaat die op uw LCD-scherm wordt weergegeven.
OPMERKING: ALS u een ASC7125A-module gebruikt, zorg er dan voor dat uw belasting niet meer dan 5A verbruikt, gebruik ook draden met een hogere dikte voor stroomvoerende geleiders.
De volledige werking van het PIC-microcontroller-gebaseerde ampèremeterproject wordt getoond in de onderstaande video. Ik hoop dat je het project hebt laten werken en het leuk vond om het te doen. Als je twijfels hebt, kun je ze in de commentaarsectie hieronder schrijven of op onze forums posten.