Spannung messen mit dem Arduino

FunduinoZuletzt aktualisiert am

Bis zu 25 Volt Gleichspannung mit dem Spannungssensor messen

Die analogen Eingänge des Arduino vertragen höchstens 5 Volt. Mit einem Spannungssensor misst du trotzdem größere Spannungen – bis zu 25 Volt Gleichspannung.

In dieser Anleitung schließt du den Sensor an, liest den Messwert ein, rechnest ihn in Volt um und lässt ihn im seriellen Monitor anzeigen.

Schaltplan mit Spannungssensor am Funduino UNO R3
Schaltplan: der Spannungssensor am UNO R3

Wozu ein Spannungssensor gut ist

Die analogen Eingänge des Arduino vertragen höchstens 5 Volt. Willst du mehr messen, brauchst du einen Spannungssensor. Der hier verwendete deckt einen Bereich von 0 bis 25 Volt Gleichspannung ab.

Das Modul ist im Grunde ein Spannungsteiler: Es bildet die 0 bis 25 Volt an seinem Ausgang auf 0 bis 5 Volt ab – also genau auf den Bereich, den der Arduino einlesen kann.

Der Sensor misst ausschließlich Gleichspannung und höchstens 25 Volt. Netzspannung darfst du damit nicht messen.

Spannungssensor-Modul mit Schraubklemme und drei Anschlusspins
Der Spannungssensor für bis zu 25 Volt

Sensor anschließen

Die Verkabelung ist einfach, denn zum Arduino führen nur drei Kontakte:

  • S – an A1 (Analog 1)
  • + – an 5V
  • − – an GND

Auf der anderen Seite des Moduls sitzen die Klemmen GND und VCC. Dort schließt du die Spannung an, die du messen willst.

Schaltplan mit Spannungssensor am Funduino UNO R3
Schaltplan: der Spannungssensor am UNO R3

Spannung auslesen

Der Sketch liest den Wert am analogen Eingang ein und rechnet ihn mit dem Befehl map in eine Spannung um. Weil map nur mit ganzen Zahlen arbeitet, wird zuerst auf den Bereich 0 bis 250 abgebildet und anschließend durch 10 geteilt – so kommt die Nachkommastelle zustande.

Spannung messen und im seriellen Monitor anzeigen
float Messwert;
float Spannung;

void setup()
{
  // Serielle Verbindung starten. Sie ist nötig, um die Ergebnisse später mit dem
  // Befehl Serial.println an den seriellen Monitor senden zu können.
  Serial.begin(9600);
}

void loop()
{
  // Spannungswert am analogen Eingang 1 auslesen
  Messwert = analogRead(1);

  // Umwandeln des Sensorwertes mit dem Befehl map. Da map keine Kommastellen ausgibt,
  // wird hier vorerst mit größeren Zahlen gearbeitet.
  Spannung = map(Messwert, 0, 1023, 0, 250);

  // Das Ergebnis wird durch 10 geteilt, um es als korrekten Wert mit einer
  // Nachkommastelle ausgeben zu können.
  Spannung = Spannung / 10;

  // Endgültigen Spannungswert im seriellen Monitor anzeigen. Die Zahl 2 in der Klammer
  // sorgt dafür, dass das Ergebnis mit zwei Nachkommastellen angezeigt wird. Eine 1
  // würde für eine Nachkommastelle sorgen.
  Serial.println(Spannung, 2);

  // Eine Sekunde warten, damit im seriellen Monitor nicht zu viele Daten ankommen.
  delay(1000);
}

Ergebnis prüfen

Öffne nach dem Hochladen den seriellen Monitor. Im Sekundentakt erscheint ein Spannungswert. Solange noch keine Spannungsquelle angeschlossen ist, sollte er bei 0,00 liegen.

Zum Testen bietet es sich an, den 3,3V-Anschluss des Arduino selbst zu messen. Im seriellen Monitor sollte dann ein Wert von rund 3,3 erscheinen.

Serieller Monitor der Arduino IDE mit sekundenweise ausgegebenen Spannungswerten
Die Messwerte im seriellen Monitor
Anleitung bewerten

Kommentare

Frage stellen oder Erfahrung teilen

Schreib uns, wenn etwas nicht funktioniert. Nenne dabei dein Board und die Fehlermeldung.

Wir prüfen jeden Kommentar vor der Veröffentlichung. Deine E-Mail-Adresse bleibt bei uns.