Merge branch 'main' of https://github.com/danielvici/schule-24-25
This commit is contained in:
78
INF/ka2_aufgabe1/daniel cwikla aufgabe 1.txt
Normal file
78
INF/ka2_aufgabe1/daniel cwikla aufgabe 1.txt
Normal file
@@ -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);
|
||||
}
|
||||
113
INF/ka2_aufgabe1/ka2_aufgabe1.ino
Normal file
113
INF/ka2_aufgabe1/ka2_aufgabe1.ino
Normal file
@@ -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);
|
||||
}
|
||||
36
INF/ka2_aufgabe2/daniel cwikl aufgabe 2.txt
Normal file
36
INF/ka2_aufgabe2/daniel cwikl aufgabe 2.txt
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
36
INF/ka2_aufgabe2/ka2_aufgabe2.ino
Normal file
36
INF/ka2_aufgabe2/ka2_aufgabe2.ino
Normal file
@@ -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
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user