Inhaltsverzeichnis:

ACS724 Stromsensormessungen mit Arduino - Gunook
ACS724 Stromsensormessungen mit Arduino - Gunook

Video: ACS724 Stromsensormessungen mit Arduino - Gunook

Video: ACS724 Stromsensormessungen mit Arduino - Gunook
Video: ACS724 Current Sensor Measurements with Arduino 2024, Juli
Anonim
Image
Image
Bild
Bild

In diesem anweisbaren experimentieren wir mit dem Anschließen eines ACS724-Stromsensors an einen Arduino, um Strommessungen durchzuführen. In diesem Fall ist der Stromsensor ein +/- 5A-Typ, der 400 mv/A ausgibt.

Der Arduino Uno hat einen 10-Bit-ADC, daher sind gute Fragen: Wie genau ist der aktuelle Messwert, den wir erhalten können, und wie stabil ist er?

Wir beginnen damit, dass wir den Sensor einfach an ein Voltmeter und einen Strommesser anschließen und analoge Messwerte durchführen, um zu sehen, wie gut der Sensor funktioniert, und dann verbinden wir ihn mit einem Arduino-ADC-Pin und sehen, wie gut er funktioniert.

Lieferungen

1 - Steckbrett2 - Tischnetzteile2 - DVMs1 - ACS724 Sensor +/- 5A1 - Arduino Uno1 - LM78053 - 10 Ohm, 10W Widerstände1 - 1nF Kappe1 - 10nF Kappe1 - 0.1uF KappeJumpers

Schritt 1:

Die Testschaltung ist wie im Diagramm gezeigt. Die Verbindung vom Arduino 5V-Pin zur LM7805 +5V-Schiene ist optional. Sie können mit diesem Jumper bessere Ergebnisse erzielen, aber seien Sie vorsichtig mit Ihrer Verkabelung, wenn Sie ihn verwenden, da das Arduino an Ihren Computer angeschlossen ist und die zweite Stromversorgung 5 V überschreitet, wenn Sie sie aufdrehen, um den Strom durch den Sensor zu erhöhen.

Wenn Sie die Netzteile miteinander verbinden, haben das Sensornetzteil und das Arduino-Netzteil genau den gleichen +5V-Referenzpunkt und Sie würden konsistentere Ergebnisse erwarten.

Ich tat dies ohne diese Verbindung und sah einen höheren Nullstromwert am Stromsensor (2,530 V anstelle der erwarteten 2.500 V) und einen niedrigeren als erwarteten ADC-Messwert am Nullstrompunkt. Ich erhielt einen digitalen ADC-Wert von etwa 507 bis 508 ohne Strom durch den Sensor, für 2.500 V sollten Sie einen ADC-Wert von etwa 512 sehen. Ich habe dies in der Software korrigiert.

Schritt 2: Testmessungen

Testmessungen
Testmessungen

Analoge Messungen mit einem Voltmeter und einem Amperemeter zeigten, dass der Sensor sehr genau ist. Bei Prüfströmen von 0,5A, 1,0A und 1,5A war es auf das Millivolt genau richtig.

ADC-Messungen mit dem Arduino waren nicht annähernd so genau. Diese Messungen wurden durch die 10-Bit-Auflösung des Arduino ADC und Rauschprobleme begrenzt (siehe Video). Aufgrund von Rauschen sprang der ADC-Messwert im schlimmsten Fall um bis zu 10 oder mehr Schritte ohne Strom durch den Sensor. Wenn man bedenkt, dass jeder Schritt etwa 5 mv entspricht, entspricht dies einer Schwankung von 50 mv und bei einem 400 mv/ampere-Sensor einer 50 mv/400 mv/ampere = 125 mA-Schwankung! Die einzige Möglichkeit, einen aussagekräftigen Messwert zu erhalten, bestand darin, 10 Messwerte hintereinander zu nehmen und sie dann zu mitteln.

Mit einem 10-Bit-ADC oder 1024 möglichen Pegeln und 5 V Vcc können wir etwa 5/1023 ~ 5 mv pro Schritt auflösen. Der Sensorausgang liefert 400mv/Amp. Wir haben also bestenfalls eine Auflösung von 5mv/400mv/amp ~ 12,5mA.

Aufgrund der Kombination von Schwankungen aufgrund von Rauschen und geringer Auflösung können wir diese Methode also nicht verwenden, um Strom, insbesondere kleine Ströme, genau und konsistent zu messen. Wir können diese Methode verwenden, um uns eine Vorstellung von der Stromstärke bei höheren Strömen zu geben, aber sie ist einfach nicht so genau.

Schritt 3: Schlussfolgerungen

Schlussfolgerungen
Schlussfolgerungen

Schlussfolgerungen:

-ACS724 analoge Messwerte sind sehr genau.

-ACS724 sollte sehr gut mit analogen Schaltungen funktionieren. B. Steuerung des Stromversorgungsstroms mit einer analogen Rückkopplungsschleife.

-Bei Verwendung des ACS724 mit Arduino 10-Bit-ADC gibt es Probleme mit Rauschen und Auflösung.

-Gut genug, um nur den durchschnittlichen Strom für Stromkreise mit höherem Strom zu überwachen, aber nicht gut genug für die Konstantstromregelung.

-Möglicherweise muss ein externer 12-Bit-ADC-Chip oder mehr verwendet werden, um bessere Ergebnisse zu erzielen.

Schritt 4: Arduino-Code

Hier ist der Code, den ich verwendet habe, um einfach den Arduino A0-Pin-ADC-Wert und den Code zu messen, um die Sensorspannung in Strom umzuwandeln und den Durchschnitt von 10 Messwerten zu nehmen. Der Code ist ziemlich selbsterklärend und für den Konvertierungs- und Durchschnittscode kommentiert.

Empfohlen: