#include <ESP32Servo.h>
const int servoPin = 5;
Servo servo1;
const int ledPin = 4;
const int prPin = 3;
int vinkel = 0;
int retning = 1; // 1 = opp, -1 = ned
const int dagLux = 2045;
unsigned long forrigeTid = 0;
void setup() {
Serial.begin(115200);
servo1.attach(servoPin);
pinMode(ledPin, OUTPUT);
pinMode(prPin, INPUT);
}
void loop() {
int lux = analogRead(prPin);
digitalWrite(ledPin, (lux >= dagLux) ? HIGH : LOW);
// Bestem total tid for en full syklus (opp og ned)
int totalTid = (lux >= dagLux) ? 10000 : 5000; // i ms
int stegTid = totalTid / 180; // 180 steg i en full bevegelse frem og tilbake
unsigned long nå = millis();
if (nå - forrigeTid >= stegTid) {
forrigeTid = nå;
vinkel += retning;
if (vinkel >= 90 || vinkel <= 0) {
retning *= -1; // snu retning
}
servo1.write(vinkel);
Serial.print("Lux: ");
Serial.print(lux);
Serial.print(" | Vinkel: ");
Serial.println(vinkel);
}
}