Servo Motor demo for PoliMI.
Dependencies: X_NUCLEO_IKS01A1 mbed
main.cpp@0:7766b7bed319, 2016-03-16 (annotated)
- Committer:
- daz
- Date:
- Wed Mar 16 16:41:53 2016 +0000
- Revision:
- 0:7766b7bed319
Servo motor demo. Uses X-NUCLEO-IKS01A1 Expansion Board to drive a Servo Motor with speed control
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
daz | 0:7766b7bed319 | 1 | #include "mbed.h" |
daz | 0:7766b7bed319 | 2 | #include "x_nucleo_iks01a1.h" |
daz | 0:7766b7bed319 | 3 | |
daz | 0:7766b7bed319 | 4 | #define SERVO_IDLE (0.00153) |
daz | 0:7766b7bed319 | 5 | |
daz | 0:7766b7bed319 | 6 | static X_NUCLEO_IKS01A1 *mems_expansion_board = X_NUCLEO_IKS01A1::Instance(D14, D15); |
daz | 0:7766b7bed319 | 7 | static MotionSensor *accelerometer = mems_expansion_board->GetAccelerometer(); |
daz | 0:7766b7bed319 | 8 | PwmOut servo(D3); |
daz | 0:7766b7bed319 | 9 | |
daz | 0:7766b7bed319 | 10 | int main(int argc, char** argv) |
daz | 0:7766b7bed319 | 11 | { |
daz | 0:7766b7bed319 | 12 | int32_t axes[3]; |
daz | 0:7766b7bed319 | 13 | float pwmWidth; |
daz | 0:7766b7bed319 | 14 | |
daz | 0:7766b7bed319 | 15 | /* Initialize PWM to 50Hz*/ |
daz | 0:7766b7bed319 | 16 | servo.period(0.020); |
daz | 0:7766b7bed319 | 17 | servo.pulsewidth(SERVO_IDLE); |
daz | 0:7766b7bed319 | 18 | |
daz | 0:7766b7bed319 | 19 | while(1){ |
daz | 0:7766b7bed319 | 20 | /* SENSE accelerometer X axis */ |
daz | 0:7766b7bed319 | 21 | accelerometer->Get_X_Axes(axes); |
daz | 0:7766b7bed319 | 22 | |
daz | 0:7766b7bed319 | 23 | /* COMPUTE PWM width */ |
daz | 0:7766b7bed319 | 24 | pwmWidth = SERVO_IDLE + axes[0] * 1e-7; |
daz | 0:7766b7bed319 | 25 | |
daz | 0:7766b7bed319 | 26 | /* ACTUATE Servo Motor according to accelerometer value */ |
daz | 0:7766b7bed319 | 27 | servo.pulsewidth(pwmWidth); |
daz | 0:7766b7bed319 | 28 | |
daz | 0:7766b7bed319 | 29 | /* Wait 50ms */ |
daz | 0:7766b7bed319 | 30 | wait(0.05); |
daz | 0:7766b7bed319 | 31 | } |
daz | 0:7766b7bed319 | 32 | } |
daz | 0:7766b7bed319 | 33 |