Robotics Kit Workshop
/
Program3_Servo
how to control a servo
Fork of Servo_HelloWorld by
main.cpp@0:ea7182628dfa, 2010-09-02 (annotated)
- 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?
User | Revision | Line number | New 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 | } |