back


Servo Motor Controller


Basic example to control a servo motor using built-in poti of SensorAktor-Shield.


/* servo controller

 *
 * using poti to control servo
 *

 * Making Things, http://makingthings.andreasmuxel.com
 * Based on the SensorAktor-Basics of the Lab3, Academy of Media Arts Cologne
 * http://interface.khm.de

 * pin mapping SensorAktor Shield
 * import SensorAktor.h to get already defined mapping
 *
 * analog inputs: analog0 = pin0, analog1 = pin1, analog2 = pin2,
 * analog3 = pin3, analog4 = pin4, analog5 = pin5
 * built-in poti: poti = pin5
 * amplified input: mic = pin0
 * switches: switch1 = pin1, switch2 = pin2, switch3 = pin3
 * leds: led1 = pin3, led2 = pin5, led3 = pin6
 * power outs: out1 = pin3, out2 = pin5, out3 = pin6
 * motor outs: motor1_1 = pin8, motor1_2 = pin13, motor2_1 = pin11, motor2_2 = pin12
 * motor pwms: pwmMotor1 = pin10, pwmMotor2 = pin9
 * servo outs: servo1 = pin2, servo2 = pin4, servo3 = pin7

 */

// import sensor aktor library for pin mapping
#include <SensorAktor.h>   

// import servo library
#include <Servo.h> 

// servo
Servo myservo;

// poti value
int potiValue = 0;

// this block is executed one time when programm starts
void setup(){

  // set pin modes
  pinMode(servo1,OUTPUT);

  // attaches the servo on the servo pin
  myServo.attach(servo1);

}

// this block is executed in a loop after setup is called one time
void loop(){

  // read poti (value is between 0 and 1023)
  potiValue = analogRead(poti);
  // scale sensor value to use it with the verso (value between 0 and 179)
  potiValue = map(potiValue, 0 , 1023, 0, 179);

  // waits for the servo to get there
  delay(15);

  // sets the servo position according to the scaled sensor value
  myServo.write(potiValue);

}


Files needed


SensorAktor.zip

servoController.zip