Salut,
On peut faire ça par interruption.
Par exemple, dans le setup() :
	
	attachInterrupt(digitalPinToInterrupt(pinAnemometer), isr_tours, RISING);
 pinAnemometer = 2 ou 3 sur Arduino Uno
à chaque front montant (RISING), le programme saute dans la fonction isr_tours().
Dans la loop() :
	
	1 2 3 4 5 6 7 8 9
   | void loop(){
  nb_tours = 0;
 
  interrupts();    // autoriser les interruptions
  delay(5000);   // on compte le nombre de tours sur 5 s par exemple
  noInterrupts();// désactiver les interruptions
 
  Serial.println(nb_tours / 5 * 2.4); // vitesse en km/h
} | 
 fonction d'interruption :
	
	1 2 3
   |  void isr_tours() {
  nb_tours++;
} | 
 Voilà, en gros dans un premier temps...
Dans le comptage des fronts, il faudra sans doute prendre en compte les rebonds des contacts. A voir quand vous ferez vos premiers tests...
						
					
Partager