Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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++;
