A class to control a model R/C servo, using a PwmOut
Fork of Servo by
Diff: Servo.cpp
- Revision:
- 4:fa3e4bb7a4cc
- Parent:
- 2:8995c167f399
diff -r 36b69a7ced07 -r fa3e4bb7a4cc Servo.cpp --- a/Servo.cpp Thu Sep 02 17:34:43 2010 +0000 +++ b/Servo.cpp Tue Jun 21 07:45:17 2016 +0000 @@ -43,11 +43,31 @@ float offset = _range * 2.0 * (percent - 0.5); _pwm.pulsewidth(0.0015 + clamp(offset, -_range, _range)); _p = clamp(percent, 0.0, 1.0); + } void Servo::position(float degrees) { - float offset = _range * (degrees / _degrees); - _pwm.pulsewidth(0.0015 + clamp(offset, -_range, _range)); + // float offset = _range * (degrees / _degrees); + if(degrees>0){ + + kat= 0.00145+ fabs(degrees)*0.00001111; + _pwm.pulsewidth(kat); + + } + + else if (degrees==0){ + kat=0.00145; + _pwm.pulsewidth(kat); + } + + else { + kat= 0.00145- fabs(degrees)*0.00001111; + _pwm.pulsewidth(kat); + } + + //_pwm.pulsewidth(0.00245); + //k=(0.0015 + clamp(offset, -_range, 0.002 +_range)); + } void Servo::calibrate(float range, float degrees) {