Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
uc-welt:gscheiduino:06-treppenhaus [2016/01/05 10:07] – Externe Bearbeitung 127.0.0.1uc-welt:gscheiduino:06-treppenhaus [2024/02/06 09:43] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-[[uc-welt:gscheiduino:05-eingaenge|← Kapitel 5: Eingänge]] | [[uc-welt:gscheiduino:00-uebersicht|↑ Übersicht]]  | [[uc-welt:gscheiduino:06|Kapitel 5Eingänge →]]+[[uc-welt:gscheiduino:05-eingaenge|← Kapitel 5: Eingänge]] | [[uc-welt:gscheiduino:00-uebersicht|↑ Übersicht]]  | [[uc-welt:gscheiduino:07-fussgaenger|Kapitel 7Fußgängerampel →]]
  
 ====== Kapitel 6: Treppenhauslicht ====== ====== Kapitel 6: Treppenhauslicht ======
Zeile 41: Zeile 41:
 | 1 == 0    | false | | 1 == 0    | false |
 | 42 == 42  | true | | 42 == 42  | true |
-= 2     | immer true (kein Vergleich) |+= 2     | immer true (kein Vergleich) |
  
 ===== Auf die Taste warten ===== ===== Auf die Taste warten =====
Zeile 51: Zeile 51:
 { {
 } }
-<code>+</code>
  
 Der Controller bleibt nun so lange in der Schleife hängen, bis die Taste einen anderen Zustand wie HIGH hat. Wenn Pin7 also LOW ist, wird die Schleife verlassen und der Code unterhalb ausgeführt. Der Controller bleibt nun so lange in der Schleife hängen, bis die Taste einen anderen Zustand wie HIGH hat. Wenn Pin7 also LOW ist, wird die Schleife verlassen und der Code unterhalb ausgeführt.
  
 +Als praktisches Beispiel wollen wir nun ein Treppenhauslicht programmieren:
 +
 +===== Programmablauf =====
 +
 +  * Standardmäßig ist das Licht aus
 +  * Wenn jemand die Taste drückt schaltet sich das Licht ein
 +  * Nach 3 Sekunden schaltet sich das Licht wieder aus
 +
 +Für das Treppenhauslicht verwenden wir die rote LED.
 +
 +Um den Code wieder besser lesbar zu machen erstellen wir ganz am Anfang wieder Definitionen.
 +
 +<file c kapitel06_treppenhaus.ino>
 +#define LED_ROT 13
 +#define LED_GELB 12
 +#define LED_GRUEN 11
 +#define TASTE 7
 +
 +void setup()
 +{
 +  pinMode(LED_ROT, OUTPUT);  // Pin als Ausgang definieren
 +  pinMode(TASTE, INPUT);     // Pin als Eingang definieren
 +  digitalWrite(TASTE, HIGH); // Pullup an Pin einschalten
 +}
 +
 +void loop()
 +{
 +  digitalWrite(LED_ROT, LOW);        // Rote LED ausschalten
 +  while(digitalRead(TASTE) == HIGH)  // So lange in der Schleife bleiben, wie Tastenpin HIGH ist
 +  {
 +  }
 +  // Hier kommt man nur hin, wenn die Schleife verlassen wird, also TASTE == LOW ist
 +  digitalWrite(LED_ROT, HIGH);
 +  delay(3000);
 +}
 +</file>
 +
 +Nachdem wir den Code auf den Controller geladen haben, erhalten wir das gewünschte Ergebnis: Nach Tastendruck leuchtet die rote LED für 3 Sekunden und erlischt danach.
 +
 +Um dieses Wissen zu vertiefen starten wir in eine weiter Übungsaufgabe:
  
 +[[uc-welt:gscheiduino:07-fussgaenger|Kapitel 7: Übungsaufgabe Fußgängerampel]]