Servo Motor demo for PoliMI.
Dependencies: X_NUCLEO_IKS01A1 mbed
main.cpp
- Committer:
- daz
- Date:
- 2016-03-16
- Revision:
- 0:7766b7bed319
File content as of revision 0:7766b7bed319:
#include "mbed.h"
#include "x_nucleo_iks01a1.h"
#define SERVO_IDLE (0.00153)
static X_NUCLEO_IKS01A1 *mems_expansion_board = X_NUCLEO_IKS01A1::Instance(D14, D15);
static MotionSensor *accelerometer = mems_expansion_board->GetAccelerometer();
PwmOut servo(D3);
int main(int argc, char** argv)
{
int32_t axes[3];
float pwmWidth;
/* Initialize PWM to 50Hz*/
servo.period(0.020);
servo.pulsewidth(SERVO_IDLE);
while(1){
/* SENSE accelerometer X axis */
accelerometer->Get_X_Axes(axes);
/* COMPUTE PWM width */
pwmWidth = SERVO_IDLE + axes[0] * 1e-7;
/* ACTUATE Servo Motor according to accelerometer value */
servo.pulsewidth(pwmWidth);
/* Wait 50ms */
wait(0.05);
}
}