diff --git a/INF/ka2_aufgabe1/daniel cwikla aufgabe 1.txt b/INF/ka2_aufgabe1/daniel cwikla aufgabe 1.txt new file mode 100644 index 0000000..e65019b --- /dev/null +++ b/INF/ka2_aufgabe1/daniel cwikla aufgabe 1.txt @@ -0,0 +1,78 @@ +/* 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); +} diff --git a/INF/ka2_aufgabe1/ka2_aufgabe1.ino b/INF/ka2_aufgabe1/ka2_aufgabe1.ino new file mode 100644 index 0000000..4240a12 --- /dev/null +++ b/INF/ka2_aufgabe1/ka2_aufgabe1.ino @@ -0,0 +1,113 @@ +/* INFP Klassenarbeit 2025-01-17 + * Aufgabe 1 + * Ablaufsteuerung mit Ampel-LEDs + * Name: CWIKLA DANIEL + */ + +// Pins für die Ampel-LEDs ergänzen +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, 5); // das funktioniert so + pinMode(Taster4, 5); // da muss man nix ändern... + pinMode(LED_rot, 3); + pinMode(LED_gelb, 3); + pinMode(LED_gruen, 3); + Serial.begin(115200); + Serial.println("DANIEL CWIKLA"); + Zustand = off; +} + +void loop( ) { + // Zeitsteuerung ergänzen + Einlesen( ); + Ablauf( ); + Ausgeben( ); +} + +// Aufgabe 1.1 Flankenerkennung ergänzen +void Einlesen( ) { + InTaster2 = digitalRead(Taster2); + InTaster4 = digitalRead(Taster4); + // wenn Flanke bei Taster 2 erkannt + if (InTaster2 == 1 && Merker2 == 0){ + fTaster2 = true; + Serial.println("FLANKE fTaster 2 = true"); + } else{ + // ansonsten + fTaster2 = false; + Serial.println("FLANKE fTaster 2 = false"); + } + Merker2 = InTaster2; + + // wenn Flanke bei Taster 4 erkannt + if (InTaster4 == 1){ + fTaster4 = true; + Serial.println("FLANKE fTaster 4 = true"); + } else{ + // ansonsten + fTaster4 = false; + Serial.println("FLANKE fTaster 4 = false"); + } + Merker4 = InTaster4; + + + +} + +// Aufgabe 1.2 Ablauf fertigstellen +void Ablauf( ) { + // Zustand abfragen, Folgezustand zuweisen + switch(Zustand){ + case off: + Serial.println("ZUSTAND: OFF"); + if(fTaster2 == true) { + Zustand = stop; + } else if(fTaster4 == true){ + Zustand = blink; + } else { + rot = false; + gelb = false; + gruen = false; + } + case stop: + Serial.println("ZUSTAND: STOP"); + if(fTaster2 == true) { + Zustand = go; + } else { + rot = true; + gelb = false; + gruen = false; + } + case go: + Serial.println("ZUSTAND: GO"); + if(fTaster2 == true) {Zustand = stop;} + else if (fTaster4 == true){ Zustand = off; + } else { + rot = false; + gelb = false; + gruen = true; + } + case blink: + Serial.println("ZUSTAND: BLINK"); + if(fTaster4 == true) {Zustand = off;} else { + rot = false; + gelb = true; + gruen = false; + } + } + Ausgeben(); +} + +// ***** Ausgabewerte an die Pins rausschreiben +// hier nichts ändern oder ergänzen! +void Ausgeben() { + digitalWrite(LED_rot, rot); + digitalWrite(LED_gelb, gelb); + digitalWrite(LED_gruen, gruen); +} \ No newline at end of file diff --git a/INF/ka2_aufgabe2/daniel cwikl aufgabe 2.txt b/INF/ka2_aufgabe2/daniel cwikl aufgabe 2.txt new file mode 100644 index 0000000..5990aa5 --- /dev/null +++ b/INF/ka2_aufgabe2/daniel cwikl aufgabe 2.txt @@ -0,0 +1,36 @@ +/* INFP Klassenarbeit 2025-01-17 + * Aufgabe 2 + * Grüne LED mit PWM dimmen + * Name: CWIKLA DANIEL + */ + +const int Taster2 = 2, Taster4 = 4, LED_gruen = 33; +unsigned long currentMillis, lastMillis; +float fiftypercent = 511; + +void setup( ) { + ledcAttach(LED_gruen, 125, 10); // PWM für grüne LED konfigurieren + pinMode(Taster2, 5); // das funktioniert so + pinMode(Taster4, 5); // da muss man nix ändern... + + // PWM Anfangswert für 50% + ledcWrite(LED_gruen, 0); +} + +void loop( ) { + // Zeitsteuerung ergänzen + currentMillis = millis(); + if (currentMillis - lastMillis >= 200){ + // Taster2 gedrückt: Wert um 100 erhöhen + if (digitalRead(Taster2) == HIGH){ + fiftypercent += 100; + } + // Taster4 gedrückt: Wert um 100 verringern + if (digitalRead(Taster4) == HIGH){ + fiftypercent -= 100; + } + fiftypercent = constrain(aktueller_pwm, 0, 1023); + ledcWrite(LED_gruen, fiftypercent); + lastMillis = currentMillis; + } +} \ No newline at end of file diff --git a/INF/ka2_aufgabe2/ka2_aufgabe2.ino b/INF/ka2_aufgabe2/ka2_aufgabe2.ino new file mode 100644 index 0000000..393c32f --- /dev/null +++ b/INF/ka2_aufgabe2/ka2_aufgabe2.ino @@ -0,0 +1,36 @@ +/* INFP Klassenarbeit 2025-01-17 + * Aufgabe 2 + * Grüne LED mit PWM dimmen + * Name: CWIKLA DANIEL + */ + +const int Taster2 = 2, Taster4 = 4, LED_gruen = 23; +float fiftypercent = 0; + +void setup( ) { + // PWM für grüne LED konfigurieren + //freq. noch bearbeiten + ledcAttach(LED_gruen, 8, 10); + + + pinMode(Taster2, 5); // das funktioniert so + pinMode(Taster4, 5); // da muss man nix ändern... + + // PWM Anfangswert für 50% + Serial.println(2**10); + +} + +void loop( ) { + // Zeitsteuerung ergänzen + + + // Taster2 gedrückt: Wert um 100 erhöhen + + + // Taster4 gedrückt: Wert um 100 verringern + + + +} +