Inhoudsopgave:

ACS724 Stroomsensormetingen met Arduino - Ajarnpa
ACS724 Stroomsensormetingen met Arduino - Ajarnpa

Video: ACS724 Stroomsensormetingen met Arduino - Ajarnpa

Video: ACS724 Stroomsensormetingen met Arduino - Ajarnpa
Video: ACS724 Current Sensor Measurements with Arduino 2024, Juli-
Anonim
Image
Image
Afbeelding
Afbeelding

In deze instructable zullen we experimenteren met het aansluiten van een ACS724-stroomsensor op een Arduino om stroommetingen uit te voeren. In dit geval is de stroomsensor een +/- 5A variant die 400 mv/A levert.

De Arduino Uno heeft een 10 bit ADC, dus goede vragen zijn: hoe nauwkeurig is de huidige meting die we kunnen krijgen en hoe stabiel is deze?

We beginnen door de sensor gewoon op een voltmeter en een stroommeter aan te sluiten en analoge metingen te doen om te zien hoe goed de sensor werkt en dan zullen we hem aansluiten op een Arduino ADC-pin en kijken hoe goed hij werkt.

Benodigdheden

1 - Breadboard2 - Tafelvoedingen2 - DVM's1 - ACS724-sensor +/- 5A1 - Arduino Uno1 - LM78053 - 10 ohm, 10W weerstanden1 - 1nF cap1 - 10nF cap1 - 0.1uF capJumpers

Stap 1:

Het testcircuit is zoals weergegeven in het diagram. De verbinding van de Arduino 5V-pin naar de LM7805 +5V-rail is optioneel. Je krijgt misschien betere resultaten met deze jumper op zijn plaats, maar wees voorzichtig met je bedrading als je hem gebruikt, omdat de Arduino op je computer is aangesloten en de tweede voeding hoger zal zijn dan 5V wanneer je hem hoger zet om de stroom door de sensor te vergroten.

Als je de voedingen op elkaar aansluit, hebben de sensorvoeding en de Arduino-voeding exact hetzelfde +5V-referentiepunt en zou je meer consistente resultaten verwachten.

Ik deed dit zonder deze verbinding en ik zag een hogere nulstroomwaarde op de stroomsensor (2,530 V in plaats van de verwachte 2500 V) en een lagere dan verwachte ADC-waarde op het nulstroompunt. Ik kreeg een digitale ADC-waarde van ongeveer 507 tot 508 zonder stroom door de sensor, voor 2.500V zou je een ADC-waarde van ongeveer 512 moeten zien. Ik heb dit gecorrigeerd in de software.

Stap 2: Testmetingen

Testmetingen
Testmetingen

Analoge metingen met een voltmeter en ampèremeter gaven aan dat de sensor zeer nauwkeurig is. Bij teststromen van 0,5A, 1,0A en 1,5A was het tot op de millivolt nauwkeurig.

ADC-metingen met de Arduino waren lang niet zo nauwkeurig. Deze metingen werden beperkt door de 10 bit resolutie van de Arduino ADC en ruisproblemen (zie de video). Vanwege ruis sprong de ADC-waarde in het slechtste geval tot 10 of meer stappen zonder stroom door de sensor. Aangezien elke stap ongeveer 5 mv vertegenwoordigt, is dit ongeveer een fluctuatie van 50 mv en met een 400mv/amp-sensor een fluctuatie van 50mv/400mv/amp = 125ma! De enige manier waarop ik een zinvolle meting kon krijgen, was door 10 metingen achter elkaar te doen en ze vervolgens te middelen.

Met een 10 bit ADC of 1024 mogelijke niveaus en 5V Vcc kunnen we ongeveer 5/1023 ~ 5mv per stap oplossen. De sensor uit zet 400mv/Amp. Dus in het beste geval hebben we een resolutie van 5mv/400mv/amp ~ 12.5ma.

Dus de combinatie van fluctuaties als gevolg van ruis en lage resolutie betekent dat we deze methode niet kunnen gebruiken om nauwkeurig en consistent stroom te meten, vooral kleine stromen. We kunnen deze methode gebruiken om ons een idee te geven van het huidige niveau bij hogere stromen, maar het is gewoon niet zo nauwkeurig.

Stap 3: Conclusies

conclusies
conclusies

conclusies:

-ACS724 analoge metingen zijn zeer nauwkeurig.

-ACS724 zou heel goed moeten werken met analoge circuits. bijv. het regelen van de voedingsstroom met een analoge feedbacklus.

-Er zijn problemen met ruis en resolutie bij gebruik van de ACS724 met Arduino 10 bit ADC.

-Goed genoeg om alleen de gemiddelde stroom voor hogere stroomcircuits te bewaken, maar niet goed genoeg voor constante stroomregeling.

-Mogelijk moet u een externe 12 bit of meer ADC-chip gebruiken voor betere resultaten.

Stap 4: Arduino-code

Hier is de code die ik heb gebruikt om eenvoudig de Arduino A0-pin ADC-waarde te meten en de code om de sensorspanning om te zetten in stroom en het gemiddelde van 10 metingen te nemen. De code is redelijk duidelijk en bevat commentaar voor de conversie- en middelingscode.

Aanbevolen: