ServoProg

Dependencies:   mbed

Committer:
Mahran
Date:
Thu Feb 18 10:58:50 2016 +0000
Revision:
2:05faa0892bec
Parent:
1:c56c4fb5cb59
Nucleo_PWM

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 2:05faa0892bec 66
Mahran 2:05faa0892bec 67 void Pince_Cylindre_Droit(int a)
Mahran 2:05faa0892bec 68 {//
Mahran 2:05faa0892bec 69 PWM5.period_ms(20);
Mahran 2:05faa0892bec 70 PWM5.write(map (a,0,180,0.028f,0.12f));
Mahran 2:05faa0892bec 71 }
Mahran 2:05faa0892bec 72
Mahran 2:05faa0892bec 73 void Pince_Cylindre_Gauche(int a)
Mahran 2:05faa0892bec 74 {//
Mahran 2:05faa0892bec 75 PWM6.period_ms(20);
Mahran 2:05faa0892bec 76 PWM6.write(map (a,0,180,0.028f,0.12f));
Mahran 2:05faa0892bec 77 }
Mahran 2:05faa0892bec 78
Mahran 2:05faa0892bec 79 void Pince_Cylindre_Haut()
Mahran 2:05faa0892bec 80 {
Mahran 2:05faa0892bec 81 Pince_Cylindre_Gauche(0);
Mahran 2:05faa0892bec 82 Pince_Cylindre_Droit(0);
Mahran 2:05faa0892bec 83 }
Mahran 2:05faa0892bec 84 void Pince_Cylindre_Bas()
Mahran 2:05faa0892bec 85 {
Mahran 2:05faa0892bec 86 Pince_Cylindre_Gauche(0);
Mahran 2:05faa0892bec 87 Pince_Cylindre_Droit(0);
Mahran 2:05faa0892bec 88 }
Mahran 2:05faa0892bec 89
Mahran 0:bb0da30d43f4 90 int main()
Mahran 0:bb0da30d43f4 91 {
Mahran 1:c56c4fb5cb59 92
Mahran 1:c56c4fb5cb59 93
Mahran 0:bb0da30d43f4 94 while(1) {
Mahran 1:c56c4fb5cb59 95 Pince_arriere();
Mahran 1:c56c4fb5cb59 96 wait(1);
Mahran 1:c56c4fb5cb59 97 ouverture();
Mahran 1:c56c4fb5cb59 98 wait(2);
Mahran 1:c56c4fb5cb59 99 fermeture();
Mahran 1:c56c4fb5cb59 100 wait(2);
Mahran 1:c56c4fb5cb59 101 Pince_avant();
Mahran 1:c56c4fb5cb59 102 wait(3); }
Mahran 0:bb0da30d43f4 103 }
Mahran 1:c56c4fb5cb59 104