Das Lauflicht soll erst dann starten, wenn ein Taster kurzzeitig gedrückt wird. Der Taster wird zwischen dem digitalen Anschluss 13 und Masse (GND) geschaltet. boolean an=LOW; boolean aus=HIGH; int warten=50; boolean ein; . . . void setup() { ..... pinMode(13, INPUT_PULLUP); } void loop() { ein=digitalRead(13); if (ein==0) { .... } } |
![]() |
Erklärung: boolean ein; : Es wird eine Variable ein festgelegt, die nur die beiden Zustände 0 oder 1 annehmen kann. pinMode(13, INPUT_PULLUP); : Der Anschluss 13 wird ein Eingang, der im nicht beschalteten Zustand den Wert 1 hat. Durch einen Schalter zur Masseleitung kann er auf den Wert 0 gebracht werden. ein=digitalRead(13); : Der Variablen ein wird der digitale Wert vom Anschluss 13 zugewiesen. Ist der Schalter offen, erhält ein eine 1, ist er zu, eine 0. if (ein==0) { }: Der Prorammabschnitt zwischen den beiden geschweiften Klammern wird nur dann abgearbeitet, wenn die Variable den Wert 0 enthält. Das hat sie nur, wenn der Schalter bei der Abfrage gedrückt wurde.
|
Hinweis: Wenn der Schalter geschlosen ist, liegt der Anschluss 13 an Masse. Ist der Schalter offen, liegt der Anschluss 13 nirgendwo an, er ist offen (schwebend). Ein solcher Zustand macht das System Instabil, da der Eingang keinen festen Pegel hat.
Deshalb muss der Eingang 13 durch einen Widerstand mit der Spannung +5V (1) verbunden werden (pull-up). Damit erhält er bei geöffnetem Schalter den Zustand 1. Zum Glück sind im Arduino diese Widerstände bereits eingebaut.Sie müssen nur im setup-Teil eingeschaltet werden: pinMode(13, INPUT_PULLUP);
|
Aufgabe: Das Lauflicht läuft immer in eine Richtung. Beim Drücken des Schalters wird die Richtung umgekehrt. Dazu muss die if-Verzweigung erweitert werden if (ein==0) { Lauflicht in einer Richtung } else { Lauflicht in der anderen Richtung } |