/*
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>
class ServoMotor
{
// Class Member Variables
// These are initialized at startup
Servo servo1;
int speed1;
unsigned long motor1RunMillis;
// These maintain the current state
boolean motor1Running;
unsigned long motor1StartMillis;
// Constructor - creates a Flasher
// and initializes the member variables and state
public:
ServoMotor(int pin, long rotationSpeed, long duration)
{
motor1StartMillis = millis();
speed1 = rotationSpeed;
motor1RunMillis = duration;
}
void Attach(int pin)
{
servo1.attach(pin);
}
void Detach()
{
servo1.detach();
}
void posicion(int pos){
servo1.write(pos);
}
};
ServoMotor servo1(5, 500, 2500);
int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
void setup()
{
servo1.Attach(5);
}
void loop() {
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)
servo1.posicion(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}