Eine mögliche Lösung:
|
AufgabeSchreibe ein Programm für eine Ampelsteuerung
Hinweise#define:// LED_rot ist an Pin 3 angeschlossen // kein '=' kein ';' #define LED_rot 3 unsigned:Kennzeichnet eine Variable ohne Vorzeichen Variable bool:bool ist 0 oder 1 = LOW oder HIGH = false oder true Variable long:long bedeutet ganze Zahlen von -2147483648 bis 2147483647.
|
Lösungsansatz:
AufgabeÄndere das Programm für die AmpelHinweiseLED:Das längere Beinchen wird an Plus angeschlossen. Verwende einen Vorwiderstand von ca. 200 Ohm.
|
Lösungsansatz:
AufgabeBerechne die Steuerzeiten für die Ampelgegeben sind:
Zusatz:
HinweiseLänge eines TaktsTAKT_ende = gruen_zeit + rot_zeit + gelb_zeit; Start und Ende-ZeitenBerechne die Zeiten:gruen_start = 0 gruen_ende = gruen_start + gruen_zeit gelb_1_start = gelb_1_ende = rot_start = rot_ende = gelb_2_start = gelb_2_ende = LösungAlle Steuerzeiten können aus Grünphase (gruen_zeit) und Rotphase (rot_zeit) berechnet werden. Lösung 1 für eine Ampel. Lösung 2 für zwei Ampeln.
|
Eine mögliche Lösung:
AufgabeEine ausgeschaltete Ampel blinkt gelbgegeben sind:
Zusatz:
Damit die Ampelschaltung funktioniert, muss die Rotphase (rot_zeit) immer größer als Grünphase (gruen_zeit) sein, wenn nicht, dann würden beide Ampeln gleichzeitig 'grün' zeigen.
HinweiseZeitplanFühre den Zeitplan in einem Unterprogramm aus
SchaltzeitenFühre die Berechnung der Schaltzeiten in einem Unterprogramm aus
Lösungfür zwei Ampeln, Überprüfung der Schaltzeiten, einschaltbares Gelb-Blinken und Fehler-Modus ergibt sich folgende mögliche Lösung. |