Stroomsterkte meten met de ACS712

FunduinoLaatst bijgewerkt op

Stromstärke mit dem Hall-Sensor ACS712 messen

Der Stromstärkesensor ACS712 wird in die zu messende Leitung eingeschleift und gibt die gemessene Stromstärke als Spannung zwischen 0 und 5 Volt aus. Dein Mikrocontroller liest diese Spannung an einem analogen Eingang ein – mehr Bauteile brauchst du nicht.

In dieser Anleitung erfährst du, wie der Sensor funktioniert, worin sich die drei Varianten unterscheiden, wie du ihn anschließt und wie du aus dem Messwert die Stromstärke in Ampere berechnest.

Schaltskizze mit Arduino, ACS712-Stromstärkesensor und Glühlampe
Schaltskizze: Der Sensor wird in den Stromkreis der Glühlampe eingeschleift

So funktioniert der ACS712

Der ACS712 arbeitet mit dem Hall-Effekt: Er misst das Magnetfeld, das der fließende Strom um den Leiter herum erzeugt. Die Signalausgabe erfolgt als Spannung zwischen 0 und 5 Volt – du kannst sie also ohne zusätzliche Bauteile an einem analogen Eingang auswerten.

Solange kein Strom fließt, gibt der Sensor 2,5 Volt aus. Der Arduino liest diese Spannung als Zahlenwert von etwa 512 ein. Sobald Strom fließt, gibt der Sensor mehr oder weniger als 2,5 Volt aus – je nachdem, in welche Richtung der Strom fließt. Deshalb kann der ACS712 auch negative Stromstärken messen.

Weil der Sensor über ein Magnetfeld misst, verfälschen andere Magnetfelder das Ergebnis. Halte das Modul von Lautsprechern, Motoren und Magneten fern.

Die drei Varianten und ihre Kennlinien

Den ACS712 gibt es in drei Varianten. Sie funktionieren gleich und werden alle mit 5 Volt versorgt, unterscheiden sich aber im Messbereich und darin, um wie viel sich die Ausgangsspannung pro Ampere ändert:

  • 5 A (Chip ACS712ELCTR-05B-T): Messbereich −5 A bis +5 A, 185 mV pro Ampere
  • 20 A (Chip ACS712ELCTR-20A-T): Messbereich −20 A bis +20 A, 100 mV pro Ampere
  • 30 A (Chip ACS712ELCTR-30A-T): Messbereich −30 A bis +30 A, 66 mV pro Ampere

Daraus ergeben sich diese Kennlinien:

  • 5-A-Modul: 1,575 V entsprechen −5 A, 2,5 V entsprechen 0 A, 3,425 V entsprechen +5 A
  • 20-A-Modul: 0,5 V entsprechen −20 A, 2,5 V entsprechen 0 A, 4,5 V entsprechen +20 A
  • 30-A-Modul: 0,52 V entsprechen −30 A, 2,5 V entsprechen 0 A, 4,48 V entsprechen +30 A

Ob der gemessene Wert positiv oder negativ ausfällt, hängt davon ab, wie herum du die gemessene Leitung durch den Sensor führst.

Diagramm: Ausgangsspannung des ACS712 in der 5-A-Variante über der Stromstärke
Kennlinie des 5-A-Moduls
Diagramm: Ausgangsspannung des ACS712 in der 20-A-Variante über der Stromstärke
Kennlinie des 20-A-Moduls
Diagramm: Ausgangsspannung des ACS712 in der 30-A-Variante über der Stromstärke
Kennlinie des 30-A-Moduls
1 / 3

Sensor anschließen

Das Modul hat drei Pins für die Verbindung zum Mikrocontroller:

  • VCC – Stromversorgung, an den 5V-Anschluss des Mikrocontrollers
  • GND – Masse, an den GND-Pin des Mikrocontrollers
  • OUT – Signalausgang, in diesem Beispiel an den Pin A0

Die Leitung, deren Stromstärke du messen willst, schleifst du über die beiden Klemmen auf der gegenüberliegenden Seite des Moduls durch den Sensor.

Übungsaufgabe: Stromstärke im Lampenstromkreis messen

In der Zuleitung der Glühlampe soll die Stromstärke gemessen werden. Dazu schleifst du den Sensor wie in der Schaltskizze in den Stromkreis der Lampe ein.

Fließt noch kein Strom, gibt der Sensor 2,5 Volt aus; der Arduino erkennt am analogen Port den Zahlenwert von etwa 512.

Sobald du die Spannungsquelle anschließt, fließt Strom. Bei einem 5-A-Modul und 1 Ampere gibt der Sensor 2,685 Volt aus – am Arduino ergibt das den Messwert 550.

Vertauschst du an der Spannungsquelle die beiden Pole, fließt der Strom in die andere Richtung. Bei 1 Ampere gibt der Sensor dann 2,315 Volt aus, was am Arduino dem Messwert 474 entspricht.

Diese Messwerte rechnest du im Sketch in Ampere um:

Öffne nach dem Hochladen den seriellen Monitor und stelle ihn auf 9600 Baud. Dort siehst du den Sensorwert, die Sensorspannung in Millivolt und die daraus berechnete Stromstärke. Verwendest du ein 20-A- oder 30-A-Modul, musst du den Wert von VpA im Sketch anpassen.

Schaltskizze mit Arduino, ACS712-Stromstärkesensor und Glühlampe
Schaltskizze: Der Sensor wird in den Stromkreis der Glühlampe eingeschleift
Stromstärke messen und am seriellen Monitor ausgeben
int Sensor = A0;        // Der Stromstärkesensor wird am Pin A0 (Analog "0") angeschlossen.
int VpA = 185;          // Millivolt pro Ampere (100 für das 20A-Modul, 66 für das 30A-Modul)
int sensorwert = 0;
int Nullpunkt = 2500;   // Spannung in mV, bei der keine Stromstärke vorhanden ist
double SensorSpannung = 0;
double Ampere = 0;

void setup()
{
  // Serielle Verbindung starten, damit die Daten am seriellen Monitor angezeigt werden.
  Serial.begin(9600);
}

void loop()
{
  sensorwert = analogRead(Sensor);

  // Hier wird der Messwert in den Spannungswert am Sensor umgewandelt.
  SensorSpannung = (sensorwert / 1024.0) * 5000;

  // Im zweiten Schritt wird hier die Stromstärke berechnet.
  Ampere = ((SensorSpannung - Nullpunkt) / VpA);

  // 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" erzeugt drei Nachkommastellen
  Serial.print("\t Ampere = ");                  // Zeigt die berechnete Stromstärke an
  Serial.println(Ampere, 3);                    // Die "3" erzeugt drei Nachkommastellen

  delay(1000);
}
Handleiding beoordelen

Opmerkingen

Stel een vraag of deel je ervaring

Neem contact met ons op als iets niet werkt. Vermeld daarbij je board en de foutmelding.

We controleren elke reactie voordat deze wordt gepubliceerd. Je e-mailadres blijft bij ons.