Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52
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
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:
-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:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: 7 Schritte (mit Bildern)
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: Hallo, und willkommen zu meinem ersten instructable! :) In diesem instructables möchte ich eine fantastische Bibliothek für die Schnittstelle der Tastatur mit Arduino teilen - 'Password Library' einschließlich 'Keypad Library'. Diese Bibliothek enthält die besten Funktionen, die wir wi
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E