Capteur effet hall

Bonjour,

Je souhaite faire un interrupteur fin de course pour un servo moteur a rotation continue avec un capteur effet hall.
Mais je n'arrive pas a utiliser le capteur effet hall.
Pourriez m'aider a trouver mon erreur.

Voici le code et la data sheet du capteur en pièce jointe.

const int hallPin=2;
int hallValue=0;

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

void loop(){
  
  hallValue=digitalRead(hallPin);
  
  if (hallValue==1){
    Serial.println("YES");
    delay(3000);
  }
  else {
    Serial.println("NO");
  }
}

Pour le câblage, j'ai la pin1 du capteur au 5v arduino, pin2 au ground et pin3 a la pin2 arduino.

Le serial monitor me donne NO tout le temps quelques soit la distance et le sens de l'aimant.

MERCI

7529.pdf (143 KB)

bonjour,
mets le sur un pin pwm et remplace digitalRead par analogRead

 hallValue=analogRead(hallPin);
Serial.println(hallValue);

tu auras peut être une idée de ce qu'il se passe.
si différent de 1 normal d'avoir toujours NO

Tout simplement....
Merci pour ce conseil.

Sans aimant la valeur (hallValue) varie de 0 a 60 puis redescend a 0 et recommence...
Avec l'aimant elle est stable a 0.

Du coup l'idée d'utiliser le capteur effet hall en interrupteur ne marche pas, car il génère le 0 même sans aimant.
Ou alors mesurer un temps pendant lequel le capteur est a 0.

Rencontrez vous ce problème avec ce type de capteur.

Bonjour,

Essaie ça:

pinMode(hallPin, INPUT_PULLUP);

Ça marche avec INPUT_PULLUP

Merci