サーボモーターを回すライブラリです。
Dependents: Hybrid_ServoMotor Hybrid_main_FirstEdtion
Servo.h
- Committer:
- Gaku0606
- Date:
- 2017-01-24
- Revision:
- 1:ed0ec5b8516c
- Parent:
- 0:7ba85d855519
File content as of revision 1:ed0ec5b8516c:
#ifndef SERVO_H_ #define SERVO_H_ #include "mbed.h" /** * @author Matsumoto Gaku * @note サーボモーターを回すライブラリです。0~180度のやつを対象としています。 */ class Servo{ public: /** @param _pin pin's name @param _maxPulse Max pulse width in seconds @param _minPulse min pulse width in seconds */ Servo(PinName pin, double maxPulse = 0.00245f, double minPulse = 0.00065f); /** @bref rotate servo motor's horn set angle @param _angle[double] Servo position in degree */ void write(double angle); /** @bref read current servo position @param [double] Return angle in degree */ double read(); /** @bref Set pulse width in max and min @param maxPulse [double] Max pulse width in seconds @param minPulse [double] min pulse width in seconds */ void setRange(double maxPulse, double minPulse); /** @bref Set pulse width in zero [degree] @param zeroPulse [double] pulse width in zero position */ void setZeroPulse(double zeroPulse = 0.00160f); /** @bref Set never over angle @param maxAngle [double] max servo position @param minAngle [double] min servo position @note もし90,0と設定すると,絶対に0°から90°の範囲から出なくなります */ void setAngleRange(double maxAngle = 90.0f, double minAngle = -90.0f); /** @bref use '=' operater, you can write() @param dValue [double] angle in degree */ Servo& operator= (double dValue); /** @bref Return currnet angle, so the same of read() */ double operator()(void); private: PwmOut _pwm; double currentAngle; double _maxPulse; double _minPulse; PinName _pinName; double _maxAngle; double _minAngle; double _zeroPulse; }; #endif