Digitale Eingänge

Example Sketch Code

Download Arduino IDE Sketch

Beschreibung

Dieser Sketch benutzt zwei Drucktaster in Verbindung mit den digitalen Eingängen der Edu-Platine, um eine LED an- und auszuschalten.

Benötigte Bauteile

  • (1) x SCS Edu-Platine
  • (1) x 830 Punkte Breadboard
  • (1) x 5mm rote LED
  • (1) x 220 Ohm Widerstand
  • (2) x Drucktaster
  • (7) x M-M Kabel (Männlich zu Männlich DuPont Jumper Kabel)

Einführung in die Komponenten

Drucktaster: Innerhalb des Schalters sind die Pins A und D sowie die Pins B und C miteinander verbunden. Drucktaster

Verbindungsschema

Verbindungsschema Digitale Eingänge

Durch Drücken des linken Schalters wird die LED eingeschaltet, ein Druck auf den rechten Schalter schaltet sie wieder aus. Der erste Teil des Sketches definiert drei Variablen für die drei Pins, die benutzt werden. Der „ledPin“ ist der Ausgang für die LED, der „buttonApin“ verweist auf den Schalter, der näher oben am Breadboard liegt und der „buttonBpin“ steht für den unteren Schalter. Die setup-Funktion definiert den ledPin als einen gewöhnlichen Ausgang (OUTPUT), wohingegen die beiden Schalterpins als Eingänge behandelt werden müssen. In diesem Fall setzen wir den pin-Modus auf „INPUT_PULLUP“:

pinMode(buttonApin, INPUT_PULLUP); pinMode(buttonBpin, INPUT_PULLUP);

Der pin-Modus INPUT_PULLUP bedeutet, dass der Pin als Eingang behandelt werden soll. Gleichzeitig bestimmt er, dass wenn nichts an den Eingang angeschlossen ist, der Standardwert für den Eingang „HIGH“ ist. In anderen Worten: Der Standardwert für den Pin ist HIGH, außer er wurde durch einen betätigten Schalter auf „LOW“ geschaltet. Das ist der Grund, warum die Schalter mit GND verbunden sind. Wenn ein Taster gedrückt wurde, verbindet er den Eingangs-Pin mit GND, sodass der Eingang nicht länger HIGH geschaltet ist. Da der Eingang im Grundzustand HIGH geschaltet und bei gedrücktem Schalter LOW ist, ist die Logik umgekehrt als eigentlich üblich. Darum werden wir uns in der loop-Funktion kümmern.

void loop() {
if (digitalRead(buttonApin) == LOW)
{
digitalWrite(ledPin, HIGH);
}
if (digitalRead(buttonBpin) == LOW)
{
digitalWrite(ledPin, LOW);
}
}

In der loop-Funktion befinden sich zwei „if“-Statements (Bedingungsanweisungen). Für jeden Schalter eins. Beide if-Statements haben als Bedingung ein „digitalRead“, das den Zustand des jeweiligen Pins beobachtet. Bedenken Sie, dass bei jedem Druck eines Tasters der Wert dessen Pins LOW sein wird. Wenn der Taster A gedrückt wird, wird buttonApin LOW sein. Das erste if- Statement ( digitalRead(buttonApin) == LOW ) wird damit erfüllt sein und die LED zum leuchten bringen ( digitalWrite(ledpin, HIGH);). Ähnlich funktioniert es beim zweiten Taster. Wenn Taster B gedrückt wird, erkennt dies das zweite If-Statement (digitalRead(buttonBpin) == LOW ) und schaltet die LED auf LOW (= aus).

Aufbau

Aufbau Digitale Eingänge