version qui tourne avec un servo

Dependencies:   Adafruit-PWM-Servo-Driver mbed

Committer:
fixair
Date:
Tue Nov 14 18:09:28 2017 +0000
Revision:
1:b6bd2138631e
Parent:
0:1fe8151cd4e1
toto v2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fixair 0:1fe8151cd4e1 1 #include"Adafruit_PWMServoDriver.h"
fixair 0:1fe8151cd4e1 2
fixair 0:1fe8151cd4e1 3 Adafruit_PWMServoDriver pwm(PA_10, PA_9, 0x82);
fixair 0:1fe8151cd4e1 4
fixair 0:1fe8151cd4e1 5 void setServoPulse(uint8_t n, float pulse) {
fixair 0:1fe8151cd4e1 6 float pulselength = 10000; // 10,000 units per seconds
fixair 0:1fe8151cd4e1 7 pulse = 4094 * pulse / pulselength;
fixair 0:1fe8151cd4e1 8 pwm.setPWM(n, 0, pulse);
fixair 0:1fe8151cd4e1 9 }
fixair 0:1fe8151cd4e1 10
fixair 0:1fe8151cd4e1 11 void initServoDriver() {
fixair 0:1fe8151cd4e1 12 pwm.begin();
fixair 0:1fe8151cd4e1 13 pwm.i2c_probe();
fixair 0:1fe8151cd4e1 14 pwm.setPrescale(64); //This value is decided for 10ms interval.
fixair 0:1fe8151cd4e1 15 pwm.setI2Cfreq(400000); //400kHz
fixair 0:1fe8151cd4e1 16 }
fixair 0:1fe8151cd4e1 17
fixair 0:1fe8151cd4e1 18 int main() {
fixair 0:1fe8151cd4e1 19
fixair 0:1fe8151cd4e1 20 while(1){
fixair 0:1fe8151cd4e1 21 initServoDriver();
fixair 0:1fe8151cd4e1 22 wait(0.2);
fixair 0:1fe8151cd4e1 23 setServoPulse(0, 2300);
fixair 0:1fe8151cd4e1 24 setServoPulse(1, 500);
fixair 0:1fe8151cd4e1 25 wait(0.5);//delay necessary to perform the action
fixair 0:1fe8151cd4e1 26 setServoPulse(0, 1350);
fixair 0:1fe8151cd4e1 27 setServoPulse(1, 1350);
fixair 0:1fe8151cd4e1 28 wait(0.5);
fixair 0:1fe8151cd4e1 29 setServoPulse(0,550);
fixair 0:1fe8151cd4e1 30 setServoPulse(1, 2250);
fixair 0:1fe8151cd4e1 31 wait(0.5);
fixair 0:1fe8151cd4e1 32 setServoPulse(0, 2300);
fixair 0:1fe8151cd4e1 33 wait(2);
fixair 0:1fe8151cd4e1 34 for (int mov = 550; mov < 2300; mov++){
fixair 0:1fe8151cd4e1 35 setServoPulse(0, mov);
fixair 0:1fe8151cd4e1 36 wait(0.001);
fixair 0:1fe8151cd4e1 37 }
fixair 0:1fe8151cd4e1 38 for (int mov = 500; mov < 2200; mov++){
fixair 0:1fe8151cd4e1 39 setServoPulse(1, mov);
fixair 0:1fe8151cd4e1 40 wait(0.001);
fixair 0:1fe8151cd4e1 41 }
fixair 0:1fe8151cd4e1 42 }
fixair 0:1fe8151cd4e1 43 }