#include #include #include #include #define LIGHT_SENSOR_PIN 34 // ESP32 pin GIOP36 (ADC0) #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 int Schalter1_pin = 18; int Schalter2_pin = 5; bool Oben = LOW; bool Unten = LOW; bool faehrtRunter = LOW; bool faehrtHoch = LOW; Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); //######################################################################################### void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); pinMode(Schalter1_pin, INPUT); pinMode(Schalter2_pin, INPUT); if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println("SSD1306 allocation failed"); for (;;); } delay(2000); } //########################################################################################## void Endlagen_auslesen() { Oben = digitalRead(Schalter1_pin); Unten = digitalRead(Schalter2_pin); } //########################################################################################### void Fehler() { Serial.println("Fehler"); display.clearDisplay(); display.setTextSize(3); display.setTextColor(WHITE); display.setCursor(0, 20); display.println("Fehler"); display.display(); } //########################################################################################## void Runter() { Serial.println("Fährt runter"); display.clearDisplay(); display.setTextSize(3); display.setTextColor(WHITE); display.setCursor(0, 20); display.println("Fährt Runter"); display.display(); faehrtRunter = HIGH; } //########################################################################################### void Hoch() { Serial.println("Fährt Hoch"); display.clearDisplay(); display.setTextSize(3); display.setTextColor(WHITE); display.setCursor(0, 20); display.println("Fährt Hoch"); display.display(); faehrtHoch = HIGH; } //########################################################################################### void Unten1() { Serial.println("Endlage Unten"); display.clearDisplay(); display.setTextSize(3); display.setTextColor(WHITE); display.setCursor(0, 20); display.println("Unten"); display.display(); faehrtRunter = LOW; } //############################################################################################ void Oben1() { Serial.println("Endlage Oben"); display.clearDisplay(); display.setTextSize(3); display.setTextColor(WHITE); display.setCursor(0, 20); display.println("Oben"); display.display(); faehrtHoch = LOW; } void loop() { Endlagen_auslesen(); Serial.println(Oben); Serial.println(Unten); int analogValue = analogRead(LIGHT_SENSOR_PIN); Serial.print("Analog Value = "); Serial.print(analogValue); // the raw analog reading if (analogValue < 3000) { Serial.println(" => Dunkel"); } else if (analogValue > 3000) { Serial.println(" => Hell"); } if (Oben && Unten) { Fehler(); } else { if (Oben && !faehrtRunter) { Oben1(); } if (analogValue > 3000 && Oben && !Unten) { Runter(); } if (Unten && !faehrtHoch) { Unten1(); } if (analogValue < 3000 && Unten && !Oben) { Hoch(); } } delay(1000); }