Problème de détection d'aimant, capteur effet Hall

Bonjour ;) (Je tiens à préciser que je suis nouveau sur le forum)

Je souhaites réaliser un compteur de tours par minutes (ou par secondes) d'une roue, et j'utilise un ou plusieurs capteurs à Effet Hall A3144, avec un aimant sur la roue.

Je branche la broche 1 et 2 respectivement sur le 5V et GND de l'Arduino, et celle de la broche 3 vers la broche A0;

Voici le code :

const int hallPin = A0; 

void setup(){
  pinMode(hallPin, INPUT);
  Serial.begin(9600);
}

void loop(){
  unsigned long etat = pulseIn(hallPin, HIGH); //avec PulseIn(), je mesure la période de lorsque le capteur détecte l'aimant.

  unsigned long periode = etat;

  Serial.print("Période : ");
  Serial.print(periode);
  Serial.println("  ");

}

Quand j'ouvre le moniteur série, il ne s'affiche que des 0, soit une valeur nulle. J'ai aussi juste fait un montage avec le capteur sur la breadboard, sans roue et quand je rapproche mon aimant, même résultat, sauf à des moments indéterminés des grands nombres, etc..., mais pas tout le temps.

J'aimerais savoir où est la source du problème et quels sont les points du code à revoir. Je rappelle que je cherche à calculer le rpm, ou tours par minutes.

Merci pour votre aide ! :wink:

Bonjour,

Mets une résistance de pullup (10K) entre la sortie du capteur et le 5V

Tu peux à la rigueur utiliser le pullup interne

pinMode(hallPin, INPUT_PULLUP);

Désolé du dérangement, mais le problème persiste. Le PinMode(hallPin, INPUT_PULLUP) a bien replacé le PinMode(hallPin, INPUT)

Affiche simplement l'état de l'entrée Serial.println(digitalRead(hallPin));

Tu dois voir la valeur passer de 0 à 1 quand l'aimant est devant le capteur à effet hall.

Si ce n'est pas le cas vérifie le câblage et le montage.

Merci beaucoup, tout fonctionne parfaitement !