// Bibliotheken
// --> include dateien
// Globale Variablen deklarieren
// was ist wo angeschlossen ?
// const int var_name = var_value; (im arbeitsspeicher)
const int LED_ROT = 32;
const int LED_GR = 33;
bool led_rot_status;
bool led_gr_status;
int led_rt_zeit = 1000;
int led_gr_zeit = 1000;
char led_eingabe;
char zeit_eingabe;
int led_rt_zeit_neu;
int led_gr_zeit_neu;
// fuktionsköpfe
// Welche Funktionen möchte ich programmieren
void roteledblinken();
void gruen_led_blinken();
void ausgabe(bool status);
void led_aus();
// setup
void setup(){
// Sind die Pins Ein- oder Ausgänge?
pinMode(LED_ROT , OUTPUT);
pinMode(LED_GR , OUTPUT);
// ...
// Seriel initalisieren + baudrate einstellen
Serial.begin(115200);
// Serielle Testasugabe
Serial.println("DANIEL");
Serial.println("10-11-2024");
// Was passiert wenn das Ding startet?
// Startwerte -> überlegen (digitalWrtie)
// -----------------------------------------
// LED IST HIGH ACTIVE (HIGH macht sie aus)
digitalWrite(LED_ROT, HIGH);
digitalWrite(LED_GR, HIGH);
led_rot_status = digitalRead(LED_ROT);
led_gr_status = digitalRead(LED_GR);
Serial.println("INITAL STATUS:");
ausgabe(led_rot_status, "rt");
ausgabe(led_gr_status, "gr");
Serial.println("= = = = = = = = = ");
}
void loop(){
// aufrufen der funktionen (funktionen werden am ende programmiert)
if (Serial.available() > 0){
led_eingabe = Serial.read();
if (led_eingabe == 'r'){
led_rt_zeit_neu = Serial.parseInt();
} else if (led_eingabe == 'g'){
led_gr_zeit_neu = Serial.parseInt();
} else {
Serial.println("r oder g eingeben");
//led_aus();
}
}
roteledblinken(false, led_rt_zeit_neu);
gruen_led_blinken(true, led_gr_zeit_neu);
//roteledblinken(true, led_rt_zeit);
//gruen_led_blinken(false, led_gr_zeit);
//roteledblinken(false, led_rt_zeit);
//gruen_led_blinken(true, led_gr_zeit);
}
void led_aus(){
digitalWrite(LED_ROT, HIGH);
digitalWrite(LED_GR, HIGH);
}
void roteledblinken(bool befehl, int zeit){
digitalWrite(LED_ROT, befehl);
led_rot_status = digitalRead(LED_ROT);
ausgabe(led_rot_status, "rt");
delay(zeit);
digitalWrite(LED_ROT, HIGH);
led_rot_status = digitalRead(LED_ROT);
ausgabe(led_rot_status, "rt");
delay(zeit);
}
void gruen_led_blinken(bool befehl, int zeit){
digitalWrite(LED_GR, befehl);
led_gr_status = digitalRead(LED_GR);
ausgabe(led_gr_status, "gr");
delay(zeit);
digitalWrite(LED_GR, LOW);
led_gr_status = digitalRead(LED_GR);
ausgabe(led_gr_status, "gr");
delay(zeit);
}
void ausgabe(bool status, String led){
// Funktions code
if (led == "rt"){
if (status == false){
Serial.println("ROTE LED ist AN");
} else {
Serial.println("ROTE LED ist AUS");
}
}else if ( led == "gr") {
if (status == false){
Serial.println("GRÜNE LED ist AN");
} else {
Serial.println("GRÜNE LED ist AUS");
}
}
}
// Aufgabe rote led soll alle 2 sek. blinken
// Je nach blink zustand soll eine Serielle Rückmeldung gegeben werden
// nur mit funktionen 1. roteledblinken() 2. ausgabe
Taster2
Taster4
LED32
LED34
ESP32 Schulboard mit LEDs und Tastern, I2C-Bus mit Standard-Belegung
SSD1306 Display
WS2812 an Pin26