Nr. 41 – Stromstärkesensor (ACS712)

Inhaltsverzeichnis

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

Stromstaerke-arduino-skizze-1024x782 (1)

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 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.
SALE