#include /* Into Robotics */ int servoPin = 9; int ldrPin = A0; Servo servo; int servoAngle = 0; // servo position in degrees int currentAngle = 0; int targetAngle = 0; int ldrValue = 0; void setup() { Serial.begin(9600); servo.attach(servoPin); pinMode(ldrPin, INPUT); } void loop() { //control the servo's direction and the position of the motor /* servo.write(45); // Turn SG90 servo Left to 45 degrees delay(1000); // Wait 1 second servo.write(90); // Turn SG90 servo back to 90 degrees (center position) delay(1000); // Wait 1 second servo.write(135); // Turn SG90 servo Right to 135 degrees delay(1000); // Wait 1 second servo.write(90); // Turn SG90 servo back to 90 degrees (center position) delay(1000);*/ //end control the servo's direction and the position of the motor ldrValue = analogRead(ldrPin); Serial.println(ldrValue); delay(1000); if (ldrValue < 450){ targetAngle = 0; if (currentAngle >= targetAngle){ for(servoAngle = currentAngle; servoAngle >= targetAngle; servoAngle--) { servo.write(servoAngle); delay(20); } } else { for(servoAngle = currentAngle; servoAngle <= targetAngle; servoAngle++) { servo.write(servoAngle); delay(20); } } currentAngle = targetAngle; } else if (ldrValue < 900 ) { targetAngle = 50; if (currentAngle >= targetAngle){ for(servoAngle = currentAngle; servoAngle >= targetAngle; servoAngle--) { servo.write(servoAngle); delay(20); } } else { for(servoAngle = currentAngle; servoAngle <= targetAngle; servoAngle++) { servo.write(servoAngle); delay(20); } } currentAngle = targetAngle; } else { targetAngle = 140; if (currentAngle >= targetAngle){ for(servoAngle = currentAngle; servoAngle >= targetAngle; servoAngle--) { servo.write(servoAngle); delay(20); } } else { for(servoAngle = currentAngle; servoAngle <= targetAngle; servoAngle++) { servo.write(servoAngle); delay(20); } } currentAngle = targetAngle; } }