#include <Servo.h>
Servo servo1;
Servo servo2;
int encoderPosition = 170;
int lastValue;
int currentValue;
int buttonState;
int xxx;
void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT_PULLUP);
pinMode(5, OUTPUT);
lastValue = digitalRead(2);
// set PIN and range in us. Standard servo range is 500 - 2500 us
servo1.attach(6, 500, 2500);
servo2.attach(11, 1000, 2000);
Serial.begin(9600);
Serial.println("BEGIN");
Serial.println();
}
void loop() {
currentValue = digitalRead(2);
if (currentValue != lastValue) {
if (digitalRead(3) != currentValue) //Rotating Clockwise
{
encoderPosition++;
if (encoderPosition > 180)
{
(encoderPosition = 180);
}
Serial.println("Clockwise");
Serial.println(encoderPosition);
}
else
{
encoderPosition--;
if (encoderPosition < 0)
{
(encoderPosition = 0);
}
Serial.println("Counterclockwise");
Serial.println(encoderPosition);
}
}
servo1.write(encoderPosition);
lastValue = currentValue;
buttonState = (digitalRead(4));
if (buttonState == LOW)
{
digitalWrite(5, HIGH);
(encoderPosition = 90);
}
else
{
digitalWrite(5, LOW);
}
xxx = map(analogRead(A0), 0, 1023, 0, 180);
servo2.write(xxx);
}