/*
Controlling a servo position using a potentiometer (variable resistor)
by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
modified on 8 Nov 2013
by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/Knob
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int speed = 600; //Speed in RPM, 0,1s = 60deg
int LEDR = 13;
int LEDG = 12;
int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(LEDR, OUTPUT);
pinMode(LEDG, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(LEDR, HIGH);
int valCheck = val;
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
delay(3000); // waits for the servo to get there
if (val >= valCheck + 30 || val <= valCheck - 30) //30 degree is how fast u want ur rpm to be like
{
digitalWrite(LEDR, LOW);
digitalWrite(LEDG, HIGH);
delay(5000);
digitalWrite(LEDG, LOW);
}
}