Inhaltsverzeichnis
Für dieses Projekt benötigst du
Den Stromstärkesensor ACS712 an einem Arduino Mikrocontroller verwenden
Techische Spezifikation
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
Pinout
Das Modul verfügt über 3 Pins, die wie folgt angeschlossen werden:
- VCC = Pin zur Stromversorgung, anzulegen an den 5V-Anschluss des Mikrocontrollers
- GND = Pin für den Ground-Pin (Erdung), anzuschließen an den GND-Pin des Mikrocontrollers
- OUT = Pin für die Signalübertragung, in unserem Beispiel anzuschließen an den A0 Pin des Mikrocontrollers
Funktionsweise
Stromsensoren mit dem ACS712 Chip können unkompliziert mit Arduino-Mikrocontrollern verwendet werden, da die Signalausgabe in Form einer Spannung von 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 Halleffekt, also auf magnetische Felder. Daher sollten die Module nicht in der Nähe von anderen Magnetfeldern verwendet werden.
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 größer oder kleiner 2,5 Volt aus, je nachdem, in welche Richtung der Strom fließt.
Für die Signalausgabe des Stromstärkesensors hat dies folgende Bedeutung:
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 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).
Übungsaufgabe
In dem Kabel der Glühbirne soll die Stromstärke gemessen werden. Zur Messung wird der Stromstärkesensor wie in der folgenden Schaltskizze zwischen der Glühlampe und dem Mikrocontroller geschaltet.
Schaltskizze
Erklärung
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 jetzt 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 bis zu 10% Rabatt für Schüler, Studenten und Lehrkräfte
-
Mehr als 3.500 Artikel sofort verfügbar!
-
Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.