
ServoProg
main.cpp@2:05faa0892bec, 2016-02-18 (annotated)
- 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?
User | Revision | Line number | New 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 |