Arduino: Spannungssensor

Wir zeigen dir in diesem Beitrag, wie du einen einfachen < 25 V Spannungssensor mit einem Arduino verwendest. Wir gehen dabei darauf ein, wie du den Sensor mit einem Arduino verbindest, stellen dir Quellcode zum Auslesen der Sensordaten bereit und zeigen dir, wie du den Sensor und deine Verkabelung leicht testen kannst.

Verbindung des Sensors

Ein Spannungssensor benötigt nur wenige Verbindungskabel mit dem Arduino. Für gewöhnlich benötigen die < 25 V Spannungssensoren nur 3 Verbindungskabel. Dabei kannst du auf eine Verbindung des 5V-Eingangs für gewöhnlich verzichten.

Arduino mit einem Spannungssensor verbinden (Fritzing-Diagramm)
Spannungssensor mit dem Arduino verbinden

Verbinde den Minus-PIN des Sensors mit einem Ground-PIN und den Plus-PIN mit dem 5V-Anschluss des Arduinos. Letztere Verbindung ist nicht unbedingt notwendig. Stelle diese Verbindung allerdings zunächst trotzdem her um sicherzugehen, dass ein eventuell auftretenden Fehler nicht in der Verkabelung liegt. Der Daten-PIN des Sensors wird für gewöhnlich auf dem Spannungssensor mit einem S gekennzeichnet. Verbinde diesen mit dem A0-PIN des Arduinos.

Quellcode zur Auslesung der Spannung

Zunächst stellen wir dir eine vereinfachte Version des Quellcodes vor. Um die Daten des Sensors mit einem Arduino-UNO auszulesen reicht der folgende Quellcode aus:

#define SENSOR_PIN A0 void setup(){ Serial.begin(9600); pinMode(SENSOR_PIN, INPUT); } void loop(){ float vcalc = analogRead(SENSOR_PIN) * (25.0f / 1024.0f); Serial.print("Eingangsspannung: "); Serial.print(vcalc, 2); Serial.println("V"); delay(500); }
Code-Sprache: PHP (php)

Über die Funktion Funktion pinMode(pin, mode) wird der PIN A0 zunächst als Eingang gekennzeichnet.

Anschließend wird innerhalb der loop()-Funktion der Wert vom PIN A0 ausgelesen. Dies geschieht über die Funktion analogRead(pin). Diese Funktion gibt einen Wert zwischen 0 und 1023 zurück. Je nach Betriebsspannung des Arduinos kann der Wert 1023 entweder bedeuten, dass 3.3V oder 5V am Eingang anliegen. Da der Arduino UNO eine Betriebsspannung von 5V besitzt, bedeutet ein Wert von 1023, dass 5V am PIN anliegen. Die Betriebsspannung deines Boards kannst du entweder über das entsprechende Datenblatt oder die Dokumentation der Funktion analogRead() herausfinden.

Anschließend wird mit dem Rückgabewert der Funktion analogRead() ein wenig gerechnet. Um diese Rechnung genauer zu verstehen, hilft es eine detaillierte Version des Quellcodes zu haben:

#define SENSOR_PIN A0 #define OPERATING_VOLTAGE 5.0f const float R1 = 30000.0f; const float R2 = 7500.0f; const float MAX_VIN = OPERATING_VOLTAGE; void setup(){ Serial.begin(9600); pinMode(SENSOR_PIN, INPUT); } void loop(){ float vin = analogRead(SENSOR_PIN) * (MAX_VIN / 1024.0f); float valc = (vin * (R1 + R2)) / R2; Serial.print("Eingangsspannung: "); Serial.print(valc, 2); Serial.println("V"); delay(500); }
Code-Sprache: Arduino (arduino)

Du erkennst am Quellcode, dass der Rückgabewert der Funktion analogRead() zunächst in einen Spannungswert umgewandelt wird. Dabei wird zunächst der Anteil des Rückgabewertes der Funktion analogRead() an 1024 berechnet. Anschließend wird dieser Wert mit der Betriebsspannung des Arduinos multipliziert. Dieses Vorgehen kannst du immer dann verwenden, wenn du einen Spannungswert (in Volt) von einem analogen Eingang erhalten möchtest.

Anschließend wird dieser Spannungswert genommen und in eine Formel zur Spannungsberechnung eingesetzt. Falls du wissen möchtest, woher diese Formel kommt, lese dir einfach unseren Beitrag zum Bauteil: Spannungssensor durch.

Testen des Sensors

Verbinde, um die korrekte Funktionsweise des Sensors zu testen, einfach den GND und VCC Eingang des Sensors mit einem GND und 3.3V PIN des Arduinos:

3.3V mit dem Spannungssensor über den Arduino messen
3.3V mit dem Spannungssensor messen

Im seriellen Monitor der Arduino IDE sollte jetzt eine Eingangsspannung von ungefähr 3.3V ausgegeben werden. Diese kann auch etwas abweichen oder schwanken. Bei mir wurden im Test bspw. 3.22 – 3.25V angezeigt.

Wenn du jetzt einmal die Verbindung vom Sensor zum 5V-Ausgang des Arduinos trennst, siehst du, dass der Sensor trotzdem weiterhin die richtige Eingangsspannung ausgibt. Dieser Eingang des Sensors wird also nicht benötigt.

Trenne jetzt einmal die Verbindung zwischen VCC und dem 3V3-PIN des Arduinos. Du solltest im seriellen Monitor sehen, dass die Eingangsspannung auf 0.00V fällt. Verbinde den VCC-Eingang des Sensors jetzt einmal mit dem 5V-PIN des Arduinos. Dir sollte jetzt im seriellen Monitor eine Eingangsspannung von ungefähr 5V angezeigt werden. Auch hier kann der Wert etwas abweichen und schwanken. Bei mir wurden im Test zwischen 4.93V und 4.96V ausgegeben.

Sollten bei dir auch Werte um die entsprechenden Spannungsbereiche ausgegeben werden, funktioniert dein Sensor korrekt.

Wichtig: Wenn du diese Sensoren über den auf ihnen angegebenen Werten einsetzt, kannst du deinen Microcontroller beschädigen! Auch darfst du bei Microcontrollern mit 3.3V Betriebsspannung für gewöhnlich nicht die gesamte angegebene Spannung messen. Auch hier kann es ansonsten passieren, dass du den Microcontroller beschädigst.

Wir wünschen dir viel Spaß bei der Umsetzung deiner Projekte mit diesem Sensor.

Lade Seite ...