how to control a servo

Dependencies:   Servo mbed

Fork of Servo_HelloWorld by Simon Ford

Committer:
simon
Date:
Thu Sep 02 17:37:55 2010 +0000
Revision:
0:ea7182628dfa
Child:
1:40d2fd0b99e6
Publish as program containing Servo library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simon 0:ea7182628dfa 1 // Hello World for the Servo interface
simon 0:ea7182628dfa 2
simon 0:ea7182628dfa 3 #include "mbed.h"
simon 0:ea7182628dfa 4 #include "Servo.h"
simon 0:ea7182628dfa 5
simon 0:ea7182628dfa 6 Servo myservo(p21);
simon 0:ea7182628dfa 7 Serial pc(USBTX, USBRX);
simon 0:ea7182628dfa 8
simon 0:ea7182628dfa 9 int main() {
simon 0:ea7182628dfa 10 printf("Servo Calibration Controls:\n");
simon 0:ea7182628dfa 11 printf("1,2,3 - Position Servo (full left, middle, full right)\n");
simon 0:ea7182628dfa 12 printf("4,5 - Decrease or Increase range\n");
simon 0:ea7182628dfa 13
simon 0:ea7182628dfa 14 float range = 0.0005;
simon 0:ea7182628dfa 15 float position = 0.5;
simon 0:ea7182628dfa 16
simon 0:ea7182628dfa 17 while(1) {
simon 0:ea7182628dfa 18 switch(pc.getc()) {
simon 0:ea7182628dfa 19 case '1': position = 0.0; break;
simon 0:ea7182628dfa 20 case '2': position = 0.5; break;
simon 0:ea7182628dfa 21 case '3': position = 1.0; break;
simon 0:ea7182628dfa 22 case '4': range += 0.0001; break;
simon 0:ea7182628dfa 23 case '5': range -= 0.0001; break;
simon 0:ea7182628dfa 24 }
simon 0:ea7182628dfa 25 printf("position = %.1f, range = +/-%0.4f\n", position, range);
simon 0:ea7182628dfa 26 myservo.calibrate(range, 45.0);
simon 0:ea7182628dfa 27 myservo = position;
simon 0:ea7182628dfa 28 }
simon 0:ea7182628dfa 29 }