Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Joystic_OrdoV3 by
Servo.h
- Committer:
- simon
- Date:
- 2009-11-16
- Revision:
- 0:24148c673250
- Child:
- 2:8995c167f399
File content as of revision 0:24148c673250:
/* mbed R/C Servo * Copyright (c) 2007-2009 sford, cstyles * Released under the MIT License: http://mbed.org/license/mit */ #ifndef MBED_SERVO_H #define MBED_SERVO_H #include "mbed.h" /* Class: Servo * Abstraction on top of PwmOut to control the position of a servo motor * * Example: * > // Continuously sweep the servo through it's full range * > #include "mbed.h" * > #include "Servo.h" * > * > Servo myservo(p21); * > * > int main() { * > while(1) { * > for(int i=0; i<100; i++) { * > myservo = i/100.0; * > wait(0.01); * > } * > for(int i=100; i>0; i--) { * > myservo = i/100.0; * > wait(0.01); * > } * > } * > } */ class Servo { public: /* Constructor: Servo * Create a servo object connected to the specified PwmOut pin * * Variables: * pin - PwmOut pin to connect to */ Servo(PinName pin); /* Function: write * Set the servo position, normalised to it's full range * * Variables: * percent - A normalised number 0.0-1.0 to represent the full range. */ void write(float percent); /* Function: read * Read the servo motors current position * * Variables: * returns - A normalised number 0.0-1.0 representing the full range. */ float read(); /* Function: position * Set the servo position * * Variables: * degrees - Servo position in degrees */ void position(float degrees); /* Function: calibrate * Allows calibration of the range and angles for a particular servo * * * Variables: * range - Pulsewidth range from center (1.5ms) to maximum/minimum position in seconds * degrees - Angle from centre to maximum/minimum position in degrees */ void calibrate(float range = 0.0005, float degrees = 45.0); /* Function: operator= * Shorthand for the write and read functions */ Servo& operator= (float percent); Servo& operator= (Servo& rhs); operator float(); protected: PwmOut _pwm; float _range; float _degrees; float _p; }; #endif