Prog Thib Ju
Dependencies: mbed
Diff: main.cpp
- Revision:
- 1:7d94c1b86ad6
- Parent:
- 0:5535594ef331
- Child:
- 2:8817ad0d0a78
--- a/main.cpp Thu Apr 11 12:05:57 2019 +0000 +++ b/main.cpp Mon Apr 15 11:44:17 2019 +0000 @@ -1,46 +1,75 @@ #include "mbed.h" - +// Definition des variables : moteur PwmOut moteur1(D10); PwmOut moteur2(D9); DigitalOut Trig(D12); InterruptIn reception(D8); -DigitalOut myled(LED1); +Serial pc(USBTX, USBRX); -DigitalOut LED(LED1); -Serial pc(USBTX, USBRX); -Timer t; +Timer t2; double distance ; double rc; +// Definition des variables : codeur +InterruptIn ComptIncr(PA_8); + +Timer t1; + +float tps1; +float tps2; +float k; +int a; +float b; + +// Definition des fonctions : moteur + void front_montant() { - t.start(); + t2.start(); } void front_descendant() { - t.stop(); - double distance = 330*t.read()/2*1.06; - // pc.printf("Distance = %f \r\n",330*t.read()/2*1.06); + t2.stop(); + double distance = 330*t2.read()/2*1.06; pc.printf("Distance = %lf \r\n", distance); - t.reset(); - myled =1; + t2.reset(); if (distance<=0.10){ rc = 0;} if (distance<=0.20 && distance>0.10){ rc = 0.5;} if (distance >=0.20) { rc = 1; } - //if (distance<=0.40 && distance>0.20){ rc = 0.6;} - //if (distance<=0.50 && distance>0.40){ rc = 0.8;} - //pc.printf("rapport cyclique = \r \n"); - //pc.scanf("%lf" ,&rc); - pc.printf("Nouvelle valeur du rapport cyclique = %lf \r \n", rc); moteur2.write(rc); + + pc.printf("RC = %lf \r\n", rc); } +// Definition des fonctions : codeur + +void vitesse(); + +void vitesse(){ + if (a == 0){ + tps1 = t1.read(); + k = 0; + } + a++; + if (a == 81) { + tps2 = t1.read(); + k = tps2 - tps1; + // printf("Intervalle de temps =%f\n",k); + a = 0; + //printf("Vitesse = %f tours/s\n", 10/t.read()); + } +} + +// Debut du main int main() { - t.reset(); + + + // Initialisation Moteur + t2.reset(); reception.rise(&front_montant); reception.fall(&front_descendant); moteur1.period_ms(10); @@ -49,19 +78,29 @@ moteur2.write(0); pc.baud(9600); + // Initialisation Codeur + a = 0; + k = 0; + b = 0; + t1.start(); + + ComptIncr.rise(&vitesse); + + // Debut du while while(1) { + // Partie moteur Trig = 1; wait(0.001); Trig =0 ; wait(0.001); - /* Trig = 0; - Trig = 1; + - //pc.printf("rapport cyclique = \r \n"); - //pc.scanf("%lf" ,&rc); - pc.printf("Nouvelle valeur du rapport cyclique = %lf \r \n", rc); - moteur_cc_pwm.write(rc); - */ + // Partie codeur + b = t1.read(); + //printf("Compteur = %d\n", a); + //printf("Temps 1 = %f\n", tps1); + //printf("Temps 2 = %f\n", tps2); + //printf("Test temps 1 = %f\n", b); } } \ No newline at end of file