Mattei Caraman
/
Robot_Fou_v2
Robot fou
Diff: func.cpp
- Revision:
- 0:8b7645cd8a39
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/func.cpp Fri Jun 01 08:27:06 2018 +0000 @@ -0,0 +1,58 @@ +#include "mbed.h" +#include "func.h" +#include "time.h" + +int etat=0; + +float distance=32; +int vitrand1=(rand()%60)+20; +int vitrand2=(rand()%60)+20; +int cligne=rand()%15; +int td12=0; + + +void vite(void){ + MotD.pulsewidth_us(vitrand1); + MotG.pulsewidth_us(vitrand2); + vitrand1=(rand()%50)+30; + vitrand2=(rand()%50)+30; +} + +void attend(void){ + if(vitrand1>vitrand2){ + wait(40*1/vitrand1); + } + else wait(40*1/vitrand2); +} + +void clignote(void){ + cligne=rand()%15; + leds.write(cligne); +} + +void fou(void){ + distance=srf.read(); + switch(etat){ + case 0 : if(distance > 45){ etat = 1; }; break; + case 1 : if(distance < 45){ etat = 0; }; break; + } + + switch(etat){ + case 0 : t2.detach(); + td12=0; + SensG.write(1); + SensD.write(0); + MotD.pulsewidth_us(50); + MotG.pulsewidth_us(50); + attend(); + break; + case 1 : if(td12==0){SensD.write(0); SensG.write(0); t2.attach(&vite,0.5); td12=1;} break; + } + /* printf("sensrand = %d\n\r",sensrand); + printf("vitrand = %d\n\r",vitrand); + */ + + printf("Tension Batterie:%g\n\r",(Vbat.read()*13300*3.3)/3300); + //wait(1); + wait_ms(30); +} \ No newline at end of file