Prog Thib Ju

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }