Stromsensoren mit dem ACS712 Chip können sehr leicht mit Arduino-Mikrocontrollern verwendet werden, da die Signalausgabe in Form einer Spannung zwischen 0 bis 5 Volt erfolgt. Eine Auswertung über einen analogen Eingang am Mikrocontroller ist daher mit nur wenig Aufwand möglich. Der Sensor ist aktuell in drei Varianten erhältlich, mit maximalen Messbereichen von 5A, 20A und 30A. Die grundlegende Funktionsweise der Module ist identisch und beruht auf den Hall-Effekt, also auf magnetische Felder. Daher sollten die Module nicht in der Nähe von anderen Magnetfeldern verwendet werden.
Sensorspezifikationen
5A Version: Chip ACS712ELCTR-05B-T
Spannungsversorgung: 5V | Messbereich: -5A bis +5A |
Spannungsänderung am Sensor pro 1A: 185mV
20A Version: Chip ACS712ELCTR-20A-T
Spannungsversorgung: 5V | Messbereich: -20A bis +20A |
Spannungsänderung am Sensor pro 1A: 100mV
30A Version: Chip ACS712ELCTR-30A-T
Spannungsversorgung: 5V | Messbereich: -30A bis +30A |
Spannungsänderung am Sensor pro 1A: 66mV
Alle Daten im Detail findest du im Datenblatt zu dem Sensor im Downloadbereich.
Das folgende Bild zeigt die Pinbelegung für den Stromstärkesensor mit ACS172-Chip.
Der Sensor kann sowohl eine positive, als auch eine negative Stromstärke messen, je nachdem, wie die Kabel der gemessenen Leitung am Sensor angeschlossen werden. Solange kein Strom am Sensor fließt, gibt er Sensor eine Spannung von 2,5 Volt aus. Als eingelesener Analogwert am Arduino wird diese Spannung als Zahlenwert 512 gespeichert. Fängt der Strom in der gemessenen Leitung nun an zu fließen, dann gibt der Stromstärkesensor als Signal eine Spannung von mehr oder weniger 2,5 Volt aus, je nachdem, in welche Richtung der Strom fließt.
Für die Signalausgabe des Stromstärkesensors hat das folgende Bedeutung:
Sensor für 5 Ampere:
Bei einer Signalspannung des Sensors von 2,5 Volt beträgt die Stromstärke 0 Ampere.
Bei einer Signalspannung des Sensors von 1,575 Volt beträgt die Stromstärke 5 Ampere und bei 3,425 Volt beträgt die Stromstärke 5 Ampere (Je nach Verkabelung positiv oder negativ).
Sensor für 20 Ampere:
Bei einer Signalspannung des Sensors von 2,5 Volt beträgt die Stromstärke 0 Ampere.
Bei einer Signalspannung des Sensors von 0,5 Volt beträgt die Stromstärke 20 Ampere und bei 4,5 Volt beträgt die Stromstärke 20 Ampere (Je nach Verkabelung positiv oder negativ).
Sensor für 30 Ampere:
Bei einer Signalspannung des Sensors von 2,5 Volt beträgt die Stromstärke 0 Ampere.
Bei einer Signalspannung des Sensors von 0,52 Volt beträgt die Stromstärke 30 Ampere und bei 4,48 Volt beträgt die Stromstärke 30 Ampere (Je nach Verkabelung positiv oder negativ).
Funktionsbeschreibung in einer Anwendung
In diesem Beispiel soll die Stromstärke im Kabel zur Glühlampe gemessen werden.
Wenn in dem abgebildeten Stromkreis kein Strom fließt, gibt der Sensor eine Ausgangsspannung von 2,5V ab. Der Arduino-Mikrocontroller erkennt diese am analogen Port als Zahlenwert von ca. 512.
Nach dem Anschließen der Spannungsquelle fließt Strom. Bei Verwendung eines 5A Moduls und einer Stromstärke von 1 Ampere würde der Sensor eine Spannung von 2,685 Volt ausgeben. Diese Spannung würde als analoger Messwert am Arduino das Ergebnis 550 hervorbringen.
Vertauscht man an der Spannungsquelle die beiden Pole ( + und – ), fließt der Strom in die andere Richtung. Der Sensor würde bei 1 Ampere in die andere Richtung nun die Spannung 2,315Volt ausgeben. Diese Spannung würde als analoger Messwert am Arduino das Ergebnis 474 hervorbringen.
Die angegebenen Messwerte müssen nun in der Arduino-Software verarbeitet werden.
Sketch
int Sensor = A0; // Der Stromstärkesensor wird am Pin A0 (Analog "0") angeschlossen. int VpA = 185; // Millivolt pro Ampere (100 für 20A Modul und 66 für 30A Modul) int sensorwert= 0; int Nullpunkt = 2500; // Spannung in mV bei dem keine Stromstärke vorhanden ist double SensorSpannung = 0; double Ampere = 0; void setup() { Serial.begin(9600); // Serielle Verbindung starten, damit die Daten am Seriellen Monitor angezeigt werden. } void loop() { sensorwert = analogRead(Sensor); SensorSpannung = (sensorwert / 1024.0) * 5000; // Hier wird der Messwert in den Spannungswert am Sensor umgewandelt. Ampere = ((SensorSpannung - Nullpunkt) / VpA); // Im zweiten Schritt wird hier die Stromstärke berechnet. // Ausgabe der Ergebnisse am Seriellen Monitor Serial.print("Sensorwert = " ); // Ausgabe des reinen Sensorwertes Serial.print(sensorwert); Serial.print("\t Sensorspannung in mV = "); // Zeigt die Sensorspannung an Serial.print(SensorSpannung,3); // Die "3" hinter dem Komma erzeugt drei Nachkommastellen Serial.print("\t Ampere = "); // shows the voltage measured Serial.println(Ampere,3); // Die "3" hinter dem Komma erzeugt drei Nachkommastellen delay(1000); }
Nach der Programmierung wird der Serielle Monitor geöffnet. Dort werden nun abhängig von der gemessenen Stromstärke die Messwerte angezeigt.
Funduino - Dein Onlineshop für Mikroelektronik
-
Dauerhaft 10% Rabatt für Schüler, Studenten und Lehrkräfte
-
Mehr als 2.000 Artikel sofort verfügbar!
-
Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.