Gestion du Trafic Adaptatif - Code des mbed récepteurs
Dependencies: XBeeLib mbed mbed-rtos
Revision 26:9f2c70bfb336, committed 2018-12-04
- Comitter:
- pierreblouet
- Date:
- Tue Dec 04 19:49:47 2018 +0000
- Parent:
- 25:7ce844f9a1ae
- Commit message:
- Code capteur comment?
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Tue Dec 04 19:33:10 2018 +0000 +++ b/main.cpp Tue Dec 04 19:49:47 2018 +0000 @@ -147,38 +147,42 @@ void nbVoitureCapteur() { while(1){ + + //lecture valeur analogique du capteur à effet doppler hb100 int value = signal.read_u16(); - // if(value<100){voiture++;printf("%d\r\n",value);wait(4);} + // si inferieur a 100 on commence la mesure de la frequence du signal if (signal.read_u16()<100&&compteur==0){ timer.start(); compteur++; wait_front_montant = 1; } - + // on attend un front montant else if (signal.read_u16()>45000&&wait_front_montant==1){ wait_front_montant=0; wait_front_descendant = 1; } - + + //deuxieme front dessandant, on a mesurer la frequence , on répète l'opération 3 fois (jusqu'a compteur == 5 ) else if (signal.read_u16()<100&&wait_front_descendant==1){ wait_front_descendant = 0; wait_front_montant=1; timer.stop(); double t = timer.read(); frequence = frequence + 1/t; - // printf("temps %f \r\n",t); - // printf("frequence %f\r\n",frequence); compteur++; timer.reset(); timer.start(); } + if(compteur==5){ + // on fait la moyenne de la somme des trois frequences mesurées frequence = frequence/3; + // on calcule la vitesse a partir d'une formule donnée dans la doc du capteur double vitesse = frequence*2/19.49; - printf("vitesse : %f KM/H \r\n",vitesse); + // si la vitesse est superieur à 1km/h, on considère qu'une voiture est passer if (vitesse>1){ send_explicit_data_to_remote_node(xbee, remoteDevice,plus); nbVoiture++;