Servo Calibration with Max and Min calibration pionts
Fork of ServoProgram by
Diff: main.cpp
- Revision:
- 1:e3c15c192f3d
- Parent:
- 0:7b3eabfa1a0f
diff -r 7b3eabfa1a0f -r e3c15c192f3d main.cpp --- a/main.cpp Tue May 18 19:40:18 2010 +0000 +++ b/main.cpp Fri Nov 09 19:55:34 2012 +0000 @@ -1,27 +1,32 @@ -#include "mbed.h" -#include "Servo.h" - -Servo myservo(p21); -Serial pc(USBTX, USBRX); - -int main() { - printf("Servo Calibration Controls:\n"); - printf("1,2,3 - Position Servo (full left, middle, full right)\n"); - printf("4,5 - Decrease or Increase range\n"); - - float range = 0.0005; - float position = 0.5; - - while(1) { - switch(pc.getc()) { - case '1': position = 0.0; break; - case '2': position = 0.5; break; - case '3': position = 1.0; break; - case '4': range += 0.0001; break; - case '5': range -= 0.0001; break; - } - printf("position = %.1f, range = +/-%0.4f\n", position, range); - myservo.calibrate(range, 45.0); - myservo = position; - } -} +#include "mbed.h" +#include "Servo.h" + +Servo myservo(p23); +Serial pc(USBTX, USBRX); + +int main() { + printf("Servo Calibration Controls:\n"); + printf("1,2,3 - Position Servo (full left, middle, full right)\n"); + printf("4,5 - Increase or Decrease Max position\n"); + printf("6,7 - Increase or Decrease Min position\n"); + + float max = 0.0005; + float min = -0.0005; + float position = 0.5; + + while(1) { + switch(pc.getc()) { + case '1': position = 0.0; break; + case '2': position = 0.5; break; + case '3': position = 1.0; break; + case '4': max += 0.0001; break; + case '5': max -= 0.0001; break; + case '6': min += 0.0001; break; + case '7': min -= 0.0001; break; + } + printf("position = %.1f, max = %0.4f, min = %0.4f, range = %0.4f\n", position, max, min, (max + -min) / 2.0); + myservo.calibrate_max(max, 45.0); + myservo.calibrate_min(min, 45.0); + myservo = position; + } +}