ACS712 30A Stromsensor

Der hier vorgestellte Stromsensor mit dem ACS712 Chip liefert eine analoge Ausgangsspannung im Bereich von 0 – 5V in Abhängigkeit des gemessenen Stromes. Bestückt auf einer Platine mit externen Anschlüssen eignet er sich hervorragend für deine Mikrocontroller-Projekte. Er existiert in drei Varianten mit unterschiedlichen Messbereichen von 5A, 20A und 30A. Da die Funktionsweise bei jeder Variante identisch ist, stelle ich hier nur die 30A Variante vor.

Meine Empfehlung

Technische Spezifikation

30A Version: Chip ACS712ELCTR-30A-T
Spannungsversorgung: 5V | Messbereich: -30A bis +30A |
Spannungsänderung am Sensor pro 1A: 66mV

Beispiel: Stromstärke eines Servo-Motors messen

In unserem Beispiel möchten wir die Stromaufnahme eines Servo-Motors messen, dazu verwenden wir ein Arduino Uno Board, einen Servo-Motor, ein Breadboard und natürlich unseren ACS712 Stromsensor.

Zuerst schließen wir unseren Stromsensor an. VCC verbinden wir mit dem 5V Ausgang des Arduino Boards, GND wird ebenfalls mit dem Board verbunden.

OUT liefert unseren analogen Sensorwert, diesen schließen wir an einen analogen Eingang an, z.B. A0.

Der zweipolige Anschlussklemmblock unseres Stromsensor-Moduls muss zwischen die Versorgungsleitung des Servo-Motors und des Arduino Boards geschaltet werden. Der GND-Anschluss des Motors wird wieder mit dem GND des Arduino Boards verbunden. In diesem Beispiel nutzen wir einen einfachen Standard Servomotor mit 5V Spannungsversorgung.

Hinweis: Je nach Leistung des Servo-Motors sollte eine externe Stromversorgung in Erwägung gezogen werden.

Die Datenleitung des Servomotors (hier gelb) wird am digitalen Pin 9 des Arduinos angeschlossen.

Quellcode für unsere Mess-Software

// Diese Werte sind abhängig vom Stromsensor
int VpA = 66;
int Nullpunkt = 2500;
 
int sensorWert= 0;
double sensorSpannung = 0;
double Ampere = 0;
 
void setup()
{ 
  Serial.begin(9600);
}
 
void loop()
{
  sensorWert = analogRead(A0);
  sensorSpannung = (sensorWert / 1024.0) * 5000;
  Ampere = ((sensorSpannung - Nullpunkt) / VpA); // Im zweiten Schritt wird hier die Stromstärke berechnet.
 
  // Ausgabe der Ergebnisse am seriellen Monitor
  Serial.print("Sensorspannung in mV = "); // Zeigt die Sensorspannung an
  Serial.print(sensorSpannung,3);
  Serial.print("\t Ampere = ");
  Serial.println(Ampere,3);
  delay(1000); 
}
Meine Empfehlung

Der Analog-Digital-Wandler an A0 wandelt eine Spannung im Bereich 0-5V in den Wertebereich 0-1024 um. Um diesen Wert in unsere Spannung umzuwandeln, müssen wir also den vom ADC gelieferten Wert (Variable sensorWert) durch 1024 teilen und mit 5000mV multiplizieren. Daraus ergibt sich unser Messwert als Spannung, die wir in der Variablen sensorSpannung speichern.

Laut Spezifikation ändert sich die Spannung am Ausgang des Stromsensors um 66mV pro 1A. Im Quellcode haben wir dies mit der Konstante VpA (=Volt per Ampere) definiert.

Bevor wir unsere gemessene Spannung durch VpA teilen um den Stromwert zu erhalten, müssen wir zunächst von der Spannung einen Offset (Nullpunkt) abziehen, der 2500mV beträgt. Erst jetzt erhalten wir die korrekte Stromstärke.

Kommentar hinterlassen