/* Sweep
by BARRAGAN <http://barraganstudio.com>
This example code is in the public domain.
modified 8 Nov 2013
by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/Sweep
*/
#include <Servo.h>
int currentrot= 0;
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(2, INPUT);
pinMode(4, INPUT);
Serial.begin(9600);
}
void rotateleft()
{
Serial.println("left");
for (pos = currentrot; pos <= 180; pos += 1)
{
myservo.write(pos);
currentrot = pos;
if(digitalRead(2) == LOW)
{
break;
}
delay(50);
}
}
void rotateright()
{
Serial.println("right");
for (pos = currentrot; pos >= 0; pos -= 1)
{
myservo.write(pos);
currentrot = pos;
if(digitalRead(4) == LOW)
{
break;
}
delay(50);
}
}
void loop()
{
if (digitalRead(2) != LOW)
{
rotateleft();
}
if (digitalRead(2) != LOW)
{
rotateright();
}
/*
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 360; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}*/
}