#include <LiquidCrystal_I2C.h> // Inkludieren der LiquidCrystal I2C-Bibliothek
#define POTI A7 // Der Pin, an dem das Potentiometer angeschlossen ist
#define LED_PIN 2 // Der Pin, an dem die LED angeschlossen ist
// Intervall für LCD-Updates
unsigned long previousMillis1 = 0;
int interval = 500;
// int für Intervall des LEDs
unsigned long previousMillis2 = 0;
LiquidCrystal_I2C lcd(0x27, 16, 2); // Initialisieren des LCD-Objekts
void setup() {
lcd.begin(16, 2);
lcd.print("Booting");
pinMode(POTI, INPUT); // Den Potentiometer-Pin als Eingang konfigurieren
pinMode(LED_PIN, OUTPUT); // Den LED-Pin als Ausgang konfigurieren
Serial.begin(9600); // Die serielle Kommunikation starten
}
void loop() {
int potiValue = analogRead(POTI); // Den Wert des Potentiometers lesen
Serial.println(potiValue); // Den Potentiometer-Wert an die serielle Schnittstelle senden
// Übersetze den Potentiometer-Wert in eine Verzögerungszeit
int delayTime = map(potiValue, 0, 1023, 100, 2000);
unsigned long currentMillis = millis();
// Aktualisiere das LCD-Display in einem festen Intervall
if (currentMillis - previousMillis1 >= interval) {
previousMillis1 = currentMillis;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Poti Wert:");
lcd.setCursor(12,0);
lcd.print(potiValue);
lcd.setCursor(0,1);
lcd.print("Blink Wert:");
lcd.setCursor(12,1);
lcd.print(delayTime);
}
// Schalte das LED in einem Zeitintervall ein und aus
if (currentMillis - previousMillis2 >= delayTime) {
previousMillis2 = currentMillis;
digitalWrite(LED_PIN, HIGH);
}
digitalWrite(LED_PIN, LOW);
}