Willkommen zu einer weiteren Lektion des Progammierkurses für Maker mit Arduino und Protocoder! In diesem Beitrag werden wir unsere Arduino-Platine und ein paar Kabel dazu verwenden, ein Voltmeter zu erstellen. Dies ist einfach und schnell umsetzbar, und auch wenn es gegenüber herkömmlichen Voltmetern gewisse Einschränkungen aufweist, ist es sehr praktisch. Darüber hinaus werden wir diesen Code auch in einer späteren Lektion verwenden, um ein Voltmeter mit Interface in unserem Smartphone oder Tablet zu erstellen.
Materialliste
- ZUM BT-328, Arduino-Platine oder kompatibel.
- Zwei Kabellängen mit 15 Zentimetern oder Überbrückungskabel
Elektrische Verbindungen
In diesem Fall verbinden wir das schwarze Kabel mit dem Pin GND bei Arduino und das andere Kabel mit einem analogen Eingang, in unserem Fall A0. Auf der Abbildung seht ihr das Verbindungsschema:
Einschränkungen
Wir können nur positive Spannungswerte zwischen 0 und 5 Volt auslesen.
Der Code
Wie immer benennen wir als Erstes die globalen Variablen des Programms:
1 2 |
int pinSonda = A0; float escala = 100; //100 für Volt, 0,1 für Millivolt |
In diesem Fall ist nur ein Kabel, das wir als Sondenmodus verwenden, mit dem analogen Eingang A0 verbunden. Das heißt, dass wir mit diesem Kabel die Spannung messen. Außerdem erstellen wir die Variable Skala, die wir so verändern können, dass wir die Werte in Volt erhalten, wenn wir die Variable gleich 100 setzen oder in Millivolt, wenn wir sie gleich 0,1 setzen. Im weiteren Verlauf sehen wir, warum diese Werte eingesetzt werden müssen. Anschließend, in der setup-Funktion, initialisieren wir das Programm:
1 2 3 4 5 6 7 |
void setup(){ Serial.begin(19200); pinMode(pinSonda, INPUT); } |
In diesem Fall starten wir die serielle Kommunikation bei 19200 Baud/Sekunde, da dies der Kommunikationsgeschwindigkeit des Bluetooth-Moduls, wie es in den ZUM BT-328 Platinen enthalten ist, entspricht. In einer späteren Lektion werden wir dieses Beispiel erneut verwenden, um in Protocoder ein Voltmeter zu erstellen. Außerdem legen wir den Pin, mit dem wir das Kabel verbunden haben, das als Sondenmodul fungiert, als Eingang (INPUT) fest. Dann, in der loop-Funktion:
1 2 3 4 5 6 7 8 9 10 11 |
void loop(){ float lectura = analogRead(pinSonda); lectura = map(lectura, 0, 1023, 0, 500); float voltaje = lectura/escala; Serial.println(voltaje); delay(500); } |
Als Erstes erstellen wir die Variable Auslesen und speichern in ihr den mit der Funktion analogRead vom pinSonda gelesenen Wert. Dann verwenden wir die map-Funktion, um den Wert des analogen Auslesens von 0 bis 1023 in 0 bis 500 umzuwandeln. Anschließend erstellen wir die float-typ Variable Spannung, bei der wir den Skalierungsfaktor anwenden. Teilen wir durch 100, erhalten wir den Wert zwischen 0 und 5 Volt; teilen wir hingegen durch 0,1, erhöhen wir die Skala und erhalten einen Wert in Millivolt. Je nachdem welches Maß wir verwenden wollen, bietet sich die Verwendung der einen oder der anderen Skala an. Als Letztes setzen wir ein kleines delay von 0.5 Sekunden ein, um die Daten auf dem Bildschirm leichter lesen zu können. Zum Übung kannst du das Programm so verändern, um die durchschnittlich gemessene Spannung während einer festgelegten Zeit anzugeben. Bis zum nächsten Beitrag!