#include <Servo.h>
Servo myServo; // Make an object of the Servo Class
int servoPin = 9;
int servoPos;
void setup()
{
Serial.begin(9600);
pinMode(servoPin,OUTPUT);
myServo.attach(servoPin);
Serial.println("Interfacing Servo with Arduino Uno R3");
}
void loop()
{
//4.2.1 Servo Movement
/*
myServo.write(0);
delay(500);
Serial.println("Starting Servo movement from 0 deg");
myServo.write(30);
delay(500);
Serial.println("Moving to 30 deg");
myServo.write(60);
delay(500);
myServo.write(90);
delay(500);
Serial.println("Moving to 90 deg");
myServo.write(120);
delay(500);
Serial.println("Moving to 120 deg");
myServo.write(150);
delay(500);
Serial.println("Moving to 150 deg");
myServo.write(180);
delay(500);
Serial.println("Moving to 180 deg");
*/
//4.2.2 Continuous Servo Movement
/*
for (servoPos = 0; servoPos <= 180; servoPos = servoPos + 30){
Serial.println("Moving Servo to " + String(servoPos) + " deg");
myServo.write(servoPos);
delay(100);}
for (servoPos = 180; servoPos >= 0; servoPos = servoPos - 30){
Serial.println("Moving Servo to " + String(servoPos) + " deg");
myServo.write(servoPos);
delay(100);}
*/
//4.2.3 Servo movement by User input
/*
Serial.println("Enter angle between 0 and 180");
while (!Serial.available());
if (Serial.available()){
servoPos = Serial.parseInt();
if (servoPos >= 0 && servoPos <= 180){
Serial.println("Moving Servo to " + String(servoPos) + " deg");
myServo.write(servoPos);}
else {Serial.println("Enter angle between 0 and 180");}
}
delay(2000);
Serial.println("Starting Servo movement from 0 deg");
myServo.write(0);
*/
// 4.2.4 Potentiometer controlled Servo Movement
//Connect the wiper of potentiometer to A0
/*
int potReading = analogRead(A0);
servoPos = map(potReading, 0, 1023, 0, 180);
Serial.println("Servo moving to " + String(servoPos));
myServo.write(servoPos);
delay(50);
*/
// 4.3.1 LDR controlled Servo Movement
//Connect the A0 of LDR to A1
int LDRReading = analogRead(A1);
servoPos = map(LDRReading, 0, 1023, 180, 0);
// Serial.println("Servo moving to " + String(servoPos));
myServo.write(servoPos);
delay(50);
}