Dependencies: mbed
Diff: nucleo_servo.cpp
- Revision:
- 0:d3dbe632b1a9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nucleo_servo.cpp Mon Oct 31 09:57:07 2016 +0000 @@ -0,0 +1,30 @@ +#include "mbed.h" +#include "nucleo_servo.h" + +Servo::Servo(PinName pin){ + servoPWM = new PwmOut(pin); + servoPWM->period_ms(20); //Do not change ;) + servoPWM->pulsewidth_us(600); + degrees = 0; +} +Servo::~Servo(){ + delete servoPWM; +} + +void Servo::set_position(float deg){ + degrees = deg; + if(degrees > 180)degrees = 180; + if(degrees < 0)degrees = 0; + int pw_us = 640 + (degrees / 180 * 1900); + servoPWM->pulsewidth_us(pw_us); +} + +void Servo::turn_left(float deg){ + degrees -= deg; + set_position(degrees); +} + +void Servo::turn_right(float deg){ + degrees += deg; + set_position(degrees); +}