Prog Thib Ju
Dependencies: mbed
main.cpp@1:7d94c1b86ad6, 2019-04-15 (annotated)
- Committer:
- MaxLaMenace
- Date:
- Mon Apr 15 11:44:17 2019 +0000
- Revision:
- 1:7d94c1b86ad6
- Parent:
- 0:5535594ef331
- Child:
- 2:8817ad0d0a78
R;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JulienB1 | 0:5535594ef331 | 1 | #include "mbed.h" |
JulienB1 | 0:5535594ef331 | 2 | |
MaxLaMenace | 1:7d94c1b86ad6 | 3 | // Definition des variables : moteur |
JulienB1 | 0:5535594ef331 | 4 | PwmOut moteur1(D10); |
JulienB1 | 0:5535594ef331 | 5 | PwmOut moteur2(D9); |
JulienB1 | 0:5535594ef331 | 6 | DigitalOut Trig(D12); |
JulienB1 | 0:5535594ef331 | 7 | InterruptIn reception(D8); |
JulienB1 | 0:5535594ef331 | 8 | |
MaxLaMenace | 1:7d94c1b86ad6 | 9 | Serial pc(USBTX, USBRX); |
JulienB1 | 0:5535594ef331 | 10 | |
MaxLaMenace | 1:7d94c1b86ad6 | 11 | Timer t2; |
JulienB1 | 0:5535594ef331 | 12 | double distance ; |
JulienB1 | 0:5535594ef331 | 13 | double rc; |
JulienB1 | 0:5535594ef331 | 14 | |
MaxLaMenace | 1:7d94c1b86ad6 | 15 | // Definition des variables : codeur |
MaxLaMenace | 1:7d94c1b86ad6 | 16 | InterruptIn ComptIncr(PA_8); |
MaxLaMenace | 1:7d94c1b86ad6 | 17 | |
MaxLaMenace | 1:7d94c1b86ad6 | 18 | Timer t1; |
MaxLaMenace | 1:7d94c1b86ad6 | 19 | |
MaxLaMenace | 1:7d94c1b86ad6 | 20 | float tps1; |
MaxLaMenace | 1:7d94c1b86ad6 | 21 | float tps2; |
MaxLaMenace | 1:7d94c1b86ad6 | 22 | float k; |
MaxLaMenace | 1:7d94c1b86ad6 | 23 | int a; |
MaxLaMenace | 1:7d94c1b86ad6 | 24 | float b; |
MaxLaMenace | 1:7d94c1b86ad6 | 25 | |
MaxLaMenace | 1:7d94c1b86ad6 | 26 | // Definition des fonctions : moteur |
MaxLaMenace | 1:7d94c1b86ad6 | 27 | |
JulienB1 | 0:5535594ef331 | 28 | void front_montant() |
JulienB1 | 0:5535594ef331 | 29 | { |
MaxLaMenace | 1:7d94c1b86ad6 | 30 | t2.start(); |
JulienB1 | 0:5535594ef331 | 31 | } |
JulienB1 | 0:5535594ef331 | 32 | |
JulienB1 | 0:5535594ef331 | 33 | void front_descendant() |
JulienB1 | 0:5535594ef331 | 34 | { |
MaxLaMenace | 1:7d94c1b86ad6 | 35 | t2.stop(); |
MaxLaMenace | 1:7d94c1b86ad6 | 36 | double distance = 330*t2.read()/2*1.06; |
JulienB1 | 0:5535594ef331 | 37 | pc.printf("Distance = %lf \r\n", distance); |
MaxLaMenace | 1:7d94c1b86ad6 | 38 | t2.reset(); |
JulienB1 | 0:5535594ef331 | 39 | if (distance<=0.10){ rc = 0;} |
JulienB1 | 0:5535594ef331 | 40 | if (distance<=0.20 && distance>0.10){ rc = 0.5;} |
JulienB1 | 0:5535594ef331 | 41 | if (distance >=0.20) { rc = 1; } |
JulienB1 | 0:5535594ef331 | 42 | moteur2.write(rc); |
MaxLaMenace | 1:7d94c1b86ad6 | 43 | |
MaxLaMenace | 1:7d94c1b86ad6 | 44 | pc.printf("RC = %lf \r\n", rc); |
JulienB1 | 0:5535594ef331 | 45 | } |
JulienB1 | 0:5535594ef331 | 46 | |
MaxLaMenace | 1:7d94c1b86ad6 | 47 | // Definition des fonctions : codeur |
MaxLaMenace | 1:7d94c1b86ad6 | 48 | |
MaxLaMenace | 1:7d94c1b86ad6 | 49 | void vitesse(); |
MaxLaMenace | 1:7d94c1b86ad6 | 50 | |
MaxLaMenace | 1:7d94c1b86ad6 | 51 | void vitesse(){ |
MaxLaMenace | 1:7d94c1b86ad6 | 52 | if (a == 0){ |
MaxLaMenace | 1:7d94c1b86ad6 | 53 | tps1 = t1.read(); |
MaxLaMenace | 1:7d94c1b86ad6 | 54 | k = 0; |
MaxLaMenace | 1:7d94c1b86ad6 | 55 | } |
MaxLaMenace | 1:7d94c1b86ad6 | 56 | a++; |
MaxLaMenace | 1:7d94c1b86ad6 | 57 | if (a == 81) { |
MaxLaMenace | 1:7d94c1b86ad6 | 58 | tps2 = t1.read(); |
MaxLaMenace | 1:7d94c1b86ad6 | 59 | k = tps2 - tps1; |
MaxLaMenace | 1:7d94c1b86ad6 | 60 | // printf("Intervalle de temps =%f\n",k); |
MaxLaMenace | 1:7d94c1b86ad6 | 61 | a = 0; |
MaxLaMenace | 1:7d94c1b86ad6 | 62 | //printf("Vitesse = %f tours/s\n", 10/t.read()); |
MaxLaMenace | 1:7d94c1b86ad6 | 63 | } |
MaxLaMenace | 1:7d94c1b86ad6 | 64 | } |
MaxLaMenace | 1:7d94c1b86ad6 | 65 | |
MaxLaMenace | 1:7d94c1b86ad6 | 66 | // Debut du main |
JulienB1 | 0:5535594ef331 | 67 | int main() |
JulienB1 | 0:5535594ef331 | 68 | { |
MaxLaMenace | 1:7d94c1b86ad6 | 69 | |
MaxLaMenace | 1:7d94c1b86ad6 | 70 | |
MaxLaMenace | 1:7d94c1b86ad6 | 71 | // Initialisation Moteur |
MaxLaMenace | 1:7d94c1b86ad6 | 72 | t2.reset(); |
JulienB1 | 0:5535594ef331 | 73 | reception.rise(&front_montant); |
JulienB1 | 0:5535594ef331 | 74 | reception.fall(&front_descendant); |
JulienB1 | 0:5535594ef331 | 75 | moteur1.period_ms(10); |
JulienB1 | 0:5535594ef331 | 76 | moteur2.period_ms(10); |
JulienB1 | 0:5535594ef331 | 77 | moteur1.write(0); |
JulienB1 | 0:5535594ef331 | 78 | moteur2.write(0); |
JulienB1 | 0:5535594ef331 | 79 | pc.baud(9600); |
JulienB1 | 0:5535594ef331 | 80 | |
MaxLaMenace | 1:7d94c1b86ad6 | 81 | // Initialisation Codeur |
MaxLaMenace | 1:7d94c1b86ad6 | 82 | a = 0; |
MaxLaMenace | 1:7d94c1b86ad6 | 83 | k = 0; |
MaxLaMenace | 1:7d94c1b86ad6 | 84 | b = 0; |
MaxLaMenace | 1:7d94c1b86ad6 | 85 | t1.start(); |
MaxLaMenace | 1:7d94c1b86ad6 | 86 | |
MaxLaMenace | 1:7d94c1b86ad6 | 87 | ComptIncr.rise(&vitesse); |
MaxLaMenace | 1:7d94c1b86ad6 | 88 | |
MaxLaMenace | 1:7d94c1b86ad6 | 89 | // Debut du while |
JulienB1 | 0:5535594ef331 | 90 | while(1) |
JulienB1 | 0:5535594ef331 | 91 | { |
MaxLaMenace | 1:7d94c1b86ad6 | 92 | // Partie moteur |
JulienB1 | 0:5535594ef331 | 93 | Trig = 1; |
JulienB1 | 0:5535594ef331 | 94 | wait(0.001); |
JulienB1 | 0:5535594ef331 | 95 | Trig =0 ; |
JulienB1 | 0:5535594ef331 | 96 | wait(0.001); |
MaxLaMenace | 1:7d94c1b86ad6 | 97 | |
JulienB1 | 0:5535594ef331 | 98 | |
MaxLaMenace | 1:7d94c1b86ad6 | 99 | // Partie codeur |
MaxLaMenace | 1:7d94c1b86ad6 | 100 | b = t1.read(); |
MaxLaMenace | 1:7d94c1b86ad6 | 101 | //printf("Compteur = %d\n", a); |
MaxLaMenace | 1:7d94c1b86ad6 | 102 | //printf("Temps 1 = %f\n", tps1); |
MaxLaMenace | 1:7d94c1b86ad6 | 103 | //printf("Temps 2 = %f\n", tps2); |
MaxLaMenace | 1:7d94c1b86ad6 | 104 | //printf("Test temps 1 = %f\n", b); |
JulienB1 | 0:5535594ef331 | 105 | } |
JulienB1 | 0:5535594ef331 | 106 | } |