This repository has been archived on 2025-10-20. You can view files and clone it, but cannot push or open issues or pull requests.
Files
2bki21/INF/ka2_aufgabe1/daniel cwikla aufgabe 1.txt
danielvici123 7918d5f672 infp ka a1 + a2
2025-02-05 18:30:34 +01:00

79 lines
1.7 KiB
Plaintext

/* INFP Klassenarbeit 2025-01-17
* Aufgabe 1
* Ablaufsteuerung mit Ampel-LEDs
* Name: CWIKLA DANIEL
*/
const int LED_rot = 27, LED_gelb = 19, LED_gruen = 23;
enum Zustaende_t { off, stop, blink, go } Zustand;
const int Taster2 = 2, Taster4 = 4;
bool fTaster2, fTaster4, InTaster2, InTaster4, Merker2, Merker4;
bool rot, gelb, gruen;
void setup() {
pinMode(Taster2, INPUT);
pinMode(Taster4, INPUT);
pinMode(LED_rot, OUTPUT);
pinMode(LED_gelb, OUTPUT);
pinMode(LED_gruen, OUTPUT);
Serial.begin(115200);
Serial.println("DANIEL CWIKLA");
Zustand = off;
}
void loop() {
Einlesen();
Ablauf();
Ausgeben();
}
void Einlesen() {
InTaster2 = digitalRead(Taster2);
InTaster4 = digitalRead(Taster4);
fTaster2 = (InTaster2 == HIGH && Merker2 == LOW);
fTaster4 = (InTaster4 == HIGH && Merker4 == LOW);
Merker2 = InTaster2;
Merker4 = InTaster4;
}
void Ablauf() {
switch (Zustand) {
case off:
Serial.println("ZUSTAND: OFF");
if (fTaster2) Zustand = stop;
else if (fTaster4) Zustand = blink;
rot = false; gelb = false; gruen = false;
break;
case stop:
Serial.println("ZUSTAND: STOP");
if (fTaster2) Zustand = go;
rot = true; gelb = false; gruen = false;
break;
case go:
Serial.println("ZUSTAND: GO");
if (fTaster2) Zustand = stop;
else if (fTaster4) Zustand = off;
rot = false; gelb = false; gruen = true;
break;
case blink:
Serial.println("ZUSTAND: BLINK");
if (fTaster4) Zustand = off;
rot = false; gelb = true; gruen = false;
break;
}
}
void Ausgeben() {
digitalWrite(LED_rot, rot);
digitalWrite(LED_gelb, gelb);
digitalWrite(LED_gruen, gruen);
}