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.
PwmServo.cpp@6:8364e8639b4e, 2014-10-26 (annotated)
- Committer:
- YosukeK
- Date:
- Sun Oct 26 05:12:20 2014 +0000
- Revision:
- 6:8364e8639b4e
- Parent:
- 5:8223f5a154e2
Fixed bug of moveServo(): reverse angle caluculation is wrong.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YosukeK | 0:916047fa0d8b | 1 | #include <mbed.h> |
YosukeK | 0:916047fa0d8b | 2 | #include <PwmServo.h> |
YosukeK | 0:916047fa0d8b | 3 | |
YosukeK | 5:8223f5a154e2 | 4 | /** |
YosukeK | 5:8223f5a154e2 | 5 | * サーボ制御基底クラス |
YosukeK | 5:8223f5a154e2 | 6 | */ |
YosukeK | 5:8223f5a154e2 | 7 | |
YosukeK | 5:8223f5a154e2 | 8 | /** |
YosukeK | 5:8223f5a154e2 | 9 | * コンストラクタ |
YosukeK | 5:8223f5a154e2 | 10 | */ |
YosukeK | 0:916047fa0d8b | 11 | PwmServo::PwmServo(PinName pin) |
YosukeK | 0:916047fa0d8b | 12 | { |
YosukeK | 0:916047fa0d8b | 13 | pwm = new PwmOut(pin); |
YosukeK | 0:916047fa0d8b | 14 | pwm->period_ms(PWM_CONTROL_PERIOD); |
YosukeK | 0:916047fa0d8b | 15 | pwm->write(0.20); |
YosukeK | 0:916047fa0d8b | 16 | } |
YosukeK | 0:916047fa0d8b | 17 | |
YosukeK | 5:8223f5a154e2 | 18 | /** |
YosukeK | 5:8223f5a154e2 | 19 | * デストラクタ |
YosukeK | 5:8223f5a154e2 | 20 | */ |
YosukeK | 0:916047fa0d8b | 21 | PwmServo::~PwmServo() |
YosukeK | 0:916047fa0d8b | 22 | { |
YosukeK | 0:916047fa0d8b | 23 | delete pwm; |
YosukeK | 0:916047fa0d8b | 24 | } |
YosukeK | 0:916047fa0d8b | 25 | |
YosukeK | 5:8223f5a154e2 | 26 | /** |
YosukeK | 5:8223f5a154e2 | 27 | * 角度設定 |
YosukeK | 5:8223f5a154e2 | 28 | */ |
YosukeK | 0:916047fa0d8b | 29 | void PwmServo::setAngle(float angle) |
YosukeK | 0:916047fa0d8b | 30 | { |
YosukeK | 0:916047fa0d8b | 31 | //pwm->pulsewidth(((angle/180) + 1) / 1000); |
YosukeK | 0:916047fa0d8b | 32 | pwm->pulsewidth_us((angle*2000)/180+500);//This values correspond to SG90. |
YosukeK | 0:916047fa0d8b | 33 | } |
YosukeK | 0:916047fa0d8b | 34 | |
YosukeK | 0:916047fa0d8b | 35 |