Die 14 digitalen IO-Ports des Arduino bzw. Olimexino lassen sich alle als Eingang konfigurieren. Fragt man nun aber im Programm den Zustand eines Eingangs ab, ist es rein zufällig ob sich der Arduino für LOW oder HIGH entscheidet.
Um dies zu verhindern benutzt man allgemein einen Widerstand um den Eingang auf einen definierten Zustand zu ziehen (pull). Je nachdem ob man den Eingang (solange der Taster nicht gedrückt ist) auf LOW oder HIGH haben möchte legt man den Widerstand vom Eingang auf GND oder Plus und nennt dies dann Pull-Down oder Pull-Up.
In unserer Beispielschaltung verwenden wir einen Pull-Up-Widerstand um den Eingang auf HIGH zu bringen. Beim Betätigen des Tasters fließt der Strom dann zu GND und der Eingang wird LOW. Dafür ist 10 KOhm ein üblicher Wert. Wer keinen Widerstand dieser Größe hat kann auch einen kleineren nehmen, im Beispiel funktioniert es auch mit 560 Ohm, verbraucht dann aber mehr Strom.
mit der Maus über Elemente fahren (oder im Touch-Modus: Elemente antippen)...
Bauteile:
Breadboard | ||
Taster | ||
Arduino | ||
LED | ||
Widerstand | 560Ohm | |
Widerstand | 560Ohm | |
Programmcode:
int schalterPin = 8;    // der Pin für den Taster int ledPin = 6;     // der Pin für die LED int zustand = 0;   // in dieser Variable wird der Zustand des Eingangs gespeichert void setup() { pinMode(ledPin, OUTPUT); // der Pin für die LED wird zum Ausgang pinMode(schalterPin, INPUT); // der Pin für die Taster wird zum Eingang } void loop(){ zustand = digitalRead(schalterPin); /* der Eingang ist durch den Widerstand auf HIGH und geht, wenn der Taster gedrückt wird, auf LOW */ if (zustand == HIGH) { digitalWrite(ledPin, LOW); } else { digitalWrite(ledPin, HIGH); } }
Bauteile (Bezugsquellen):
eBay: | Arduino Breadboard Breadboard Kabel |
Amazon: | Arduino Breadboard Breadboard Kabel |
Gut?