1.Einführung
Buttons haben normaleweise vier Pins.
Allerdings sind diese Pins intern paarweise verbunden. Daher müssen wir nur zwei der vier Pins verwenden, die NICHT intern verbunden sind.
Es gibt vier Möglichkeiten (aus Symmetriegründen eigentlich zwei Möglichkeiten), eine Verbindung zur Schaltfläche herzustellen (siehe Bild).
Wir können nur zwei Pins eines Buttons verwenden. Warum hat es Pins?
⇒ Damit es fest in Board sitzt und der Druckkraft standhält.
Wie funktioniert ein Button?
Wenn die Taste NICHT gedrückt wird, ist Pin A NICHT mit Pin B verbunden.
Wenn die Taste gedrückt wird, ist Pin A mit Pin B verbunden
2.Die Schaltung
Benötigtes Material:
- Arduino Uno
- USB-Kabel für den Arduino
- Button 5PCS
- 4x MW-Kabel
- LED
- Der Pin einer Taste ist mit GND verbunden. Der andere Pin ist mit einem Arduino-Pin verbunden. Indem wir den Status des Arduino-Pins (als Eingangspin konfiguriert) lesen, können wir erkennen, ob die Taste gedrückt wurde oder NICHT.
- Der Pin eines Knopfes ist mit GND verbunden, der andere ist über einen Pull-up-Widerstand mit dem Pin eines Arduino verbunden.
- Wenn die Taste gedrückt wird, ist der Pin-Status des Arduino LOW. Andernfalls ist der Pin-Status des Arduino HIGH.
- Wir können entweder einen internen oder externen Widerstand verwenden. Der interne Widerstand ist im Arduino eingebaut, wir müssen ihn nur über den Arduino-Code einstellen. Initialisiert den Arduino-Pin als internen Pull-up-Eingang (mithilfe von pinMode (BUTTON_PIN, INPUT_PULLUP)). Es ist KEIN externer Pull-Down-/Pull-Up- Widerstand erforderlich.
3.Code
Wir wollen unserem Arduino nun beibringen, eine LED in Pin 13 leuchten zu lassen, wenn das Button gedrückt wird. Wir verwenden dazu folgenden Code:
//LED Wir geben den Pins folgenden Namen
int ledPin = 10; // die Nummer der
int tasterPin = 5; //die Nummer des Druckknopf-Pins
void setup(){
pinMode(ledPin,OUTPUT);
pinMode(tasterPin, INPUT_PULLUP);
}
void loop() {
// Die if-Abfrage für den Button fragt, ob der Button HIGH ist:
if (digitalRead(tasterPin)==HIGH)
{
//Wenn der Button HIGH ist, soll die LED eingeschalten werden:
digitalWrite(ledPin, HIGH);
//Ansonsten (else) soll sie ausgeschaltet werden:
} else {
digitalWrite(ledPin, LOW);
}
}
4.Aufgaben
- Programmiere ihn so, dass die LED leuchtet, wenn die Taste gedrückt wird.
- Programmiere ihn so, dass die LED fünf Sekunden leuchtet, wenn die Taste gedrückt wird.
- Probiere eine Fußgängerampel ( eine rote und eine grüne LED) aufzubauen und führe die folgenden Aufgabe:
- Wenn das Button gedrückt wird, soll die rote Lampe bei der Fußgängerampel auf gelb für fünf Sekunden springen. Anschließend leuchtet wieder rote Lampe.
- Entwirf eine Schaltung mit zwei Tasten und zwei LEDs. Wenn auf eine der Tasten gedrückt wird, soll eine LED in einer anderen Farbe leuchten und die andere soll ausgehen.