#include Servo myServo; int ldrPin = D1; int servoPin = D0; int minLDR = 60; int maxLDR = 900; int currentAngle = 0; // current position void setup() { myServo.attach(servoPin); Serial.begin(115200); } void loop() { int ldrValue = analogRead(ldrPin); // Limit range ldrValue = constrain(ldrValue, minLDR, maxLDR); // Convert to target angle int targetAngle = map(ldrValue, minLDR, maxLDR, 0, 180); // Gradual movement (1 degree per cycle) if (currentAngle < targetAngle) { currentAngle++; } else if (currentAngle > targetAngle) { currentAngle--; } myServo.write(currentAngle); Serial.print("LDR: "); Serial.print(ldrValue); Serial.print(" Target: "); Serial.print(targetAngle); Serial.print(" Current: "); Serial.println(currentAngle); delay(15); // controls speed (lower = faster) }