ServoProg

Dependencies:   mbed

Committer:
Mahran
Date:
Wed Feb 10 10:18:22 2016 +0000
Revision:
1:c56c4fb5cb59
Parent:
0:bb0da30d43f4
Child:
2:05faa0892bec
ServoOuvertureFermeture;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mahran 0:bb0da30d43f4 1 #include "mbed.h"
Mahran 1:c56c4fb5cb59 2 //TIM1_CH1 //Pince Bas gauche
Mahran 0:bb0da30d43f4 3 PwmOut PWM1(PA_8);
Mahran 1:c56c4fb5cb59 4 //TIM1_CH4 //Pince bas droite
Mahran 0:bb0da30d43f4 5 PwmOut PWM2(PA_11);
Mahran 0:bb0da30d43f4 6 //TIM16_CH1
Mahran 0:bb0da30d43f4 7 PwmOut PWM3(PA_12);
Mahran 0:bb0da30d43f4 8 //TIM3_CH1
Mahran 0:bb0da30d43f4 9 PwmOut PWM4(PB_0);
Mahran 0:bb0da30d43f4 10 //TIM3_CH4
Mahran 0:bb0da30d43f4 11 PwmOut PWM5(PB_7);
Mahran 0:bb0da30d43f4 12 //TIM17_CH1N
Mahran 0:bb0da30d43f4 13 PwmOut PWM6(PB_6);
Mahran 0:bb0da30d43f4 14 //TIM3_CH4,
Mahran 0:bb0da30d43f4 15 PwmOut PWM7(PB_1);
Mahran 0:bb0da30d43f4 16 //TIM3_CH3
Mahran 0:bb0da30d43f4 17 PwmOut PWM8(PB_0);
Mahran 1:c56c4fb5cb59 18
Mahran 0:bb0da30d43f4 19 float map (int x, int in_min,int in_max, float out_min, float out_max)
Mahran 0:bb0da30d43f4 20 {
Mahran 0:bb0da30d43f4 21 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
Mahran 0:bb0da30d43f4 22 }
Mahran 1:c56c4fb5cb59 23
Mahran 0:bb0da30d43f4 24 void Pince_Bas_Gauche(int a)
Mahran 1:c56c4fb5cb59 25 {// 40 ouverture 0 fermeture
Mahran 0:bb0da30d43f4 26 PWM1.period_ms(20);
Mahran 0:bb0da30d43f4 27 PWM1.write(map (a,0,180,0.028f,0.12f));
Mahran 0:bb0da30d43f4 28 }
Mahran 1:c56c4fb5cb59 29
Mahran 0:bb0da30d43f4 30 void Pince_Bas_Droite(int a)
Mahran 1:c56c4fb5cb59 31 {// 0 ouverture 40 fermeture
Mahran 0:bb0da30d43f4 32 PWM2.period_ms(20);
Mahran 0:bb0da30d43f4 33 PWM2.write(map (a,0,180,0.028f,0.12f));
Mahran 0:bb0da30d43f4 34 }
Mahran 1:c56c4fb5cb59 35 void ouverture()
Mahran 1:c56c4fb5cb59 36 {
Mahran 1:c56c4fb5cb59 37 Pince_Bas_Droite(0);
Mahran 1:c56c4fb5cb59 38 Pince_Bas_Gauche(40);
Mahran 1:c56c4fb5cb59 39 }
Mahran 1:c56c4fb5cb59 40 void fermeture()
Mahran 1:c56c4fb5cb59 41 {
Mahran 1:c56c4fb5cb59 42 Pince_Bas_Droite(35);
Mahran 1:c56c4fb5cb59 43 Pince_Bas_Gauche(5);
Mahran 1:c56c4fb5cb59 44 }
Mahran 0:bb0da30d43f4 45 void Pince_Glissement_Gauche(int a)
Mahran 1:c56c4fb5cb59 46 {//50avant 0 arriere
Mahran 0:bb0da30d43f4 47 PWM3.period_ms(20);
Mahran 0:bb0da30d43f4 48 PWM3.write(map (a,0,180,0.028f,0.12f));
Mahran 0:bb0da30d43f4 49 }
Mahran 1:c56c4fb5cb59 50
Mahran 0:bb0da30d43f4 51 void Pince_Glissement_Droit(int a)
Mahran 1:c56c4fb5cb59 52 {//0 avant 50 arriere
Mahran 0:bb0da30d43f4 53 PWM4.period_ms(20);
Mahran 0:bb0da30d43f4 54 PWM4.write(map (a,0,180,0.028f,0.12f));
Mahran 0:bb0da30d43f4 55 }
Mahran 1:c56c4fb5cb59 56 void Pince_avant()
Mahran 1:c56c4fb5cb59 57 {
Mahran 1:c56c4fb5cb59 58 Pince_Glissement_Droit(0);
Mahran 1:c56c4fb5cb59 59 Pince_Glissement_Gauche(50);
Mahran 1:c56c4fb5cb59 60 }
Mahran 1:c56c4fb5cb59 61 void Pince_arriere()
Mahran 1:c56c4fb5cb59 62 {
Mahran 1:c56c4fb5cb59 63 Pince_Glissement_Droit(50);
Mahran 1:c56c4fb5cb59 64 Pince_Glissement_Gauche(0);
Mahran 1:c56c4fb5cb59 65 }
Mahran 0:bb0da30d43f4 66 int main()
Mahran 0:bb0da30d43f4 67 {
Mahran 1:c56c4fb5cb59 68
Mahran 1:c56c4fb5cb59 69
Mahran 0:bb0da30d43f4 70 while(1) {
Mahran 1:c56c4fb5cb59 71 Pince_arriere();
Mahran 1:c56c4fb5cb59 72 wait(1);
Mahran 1:c56c4fb5cb59 73 ouverture();
Mahran 1:c56c4fb5cb59 74 wait(2);
Mahran 1:c56c4fb5cb59 75 fermeture();
Mahran 1:c56c4fb5cb59 76 wait(2);
Mahran 1:c56c4fb5cb59 77 Pince_avant();
Mahran 1:c56c4fb5cb59 78 wait(3); }
Mahran 0:bb0da30d43f4 79 }
Mahran 1:c56c4fb5cb59 80