Bonjour, je dispose d'un anémomètre qui fonctionne par impulsion. Chaque demi-tour lui fait passer de 0V à 5V. Je voudrais réaliser un programme qui comptent les fronts montants pour mesurer la vitesse du vent. On m'a conseillé d'utiliser les interruptions. J'ai déjà un programme test mais il ne fonctionne pas, il ne renvoi que 0 dans le moniteur série. Pouvez-vous m'aider s'il vous plait ?
Le programme :
int nb_tours;
void setup() {
const byte pinAnemometer = 2;
attachInterrupt(digitalPinToInterrupt(A2), ISR_tours, RISING);
Serial.begin(9600);
}
void loop(){
nb_tours = 0;
interrupts(); // autoriser les interruptions
delay(1000); // on compte le nombre de tours sur 1 s par exemple
noInterrupts();// désactiver les interruptions
Serial.println(nb_tours * 2.4); // vitesse en km/h
}
void ISR_tours() {
nb_tours++;
}
P.S. : Ce n'est pas moi qui suit à l'origine du programme, je l'ai juste corrigé pour que nos broches correspondent.
All the connections between the Arduino and the capters are done and good. I think the issue is on the program. I tried to change the pin but the problem is still here .
Then you should be able to post a circuit diagram and a picture of your project so we can see your component layout.
You do have the resistors shown in the post #10 fitted?
Hey guys, sorry for the late. Here's the picture of my project. I just want to count the number of impulsions that the anenometer does in a certain period.
Bonjour jpbbricole, merci de ta réponse rapide. Je n'ai en fait pas le choix du pin pour l'anémomètre car il fonctionne avec la platine ( voir photo plus haut ).
Je ne comprends pas bien comment c'est connecté sur ta photo.
C'est quand même étonnant, si la carte est prévue pour une UNO, que ça ne soit pas possible de connecter un capteur qui génère des pulses sur une entrée d'interruption.
Oui, l'adapteur DEV-LEX2 reçoit bien sur A0, A1 et A2, ce qui, pour l'anémomètre, sur A2, complique les choses, il faut surveiller en permanence l'état de l'entrée. Il existe des bibliothèques (enableinterrupt ?) qui permet de mettre un interrupt sur toutes les pin de l'Arduino qui ont l'attribut PCINTnn, PCINT10 pour A2 , ça simplifierai bien les choses.