Demande d'aide pour capteur à effet hall

Bonjour,

Je me permets de poster ce message pour vous demander votre aide.

En effet, j'aimerai savoir comment se branche le capteur à effet hall avec le programme suivant :

unsigned int capteur = 2; // On déclare le PIN du capteur
unsigned long chrono; // On déclare la valeur courante du chrono
unsigned long chrono_depart = 0; // On déclare la valeur de départ du chronomètre
unsigned long chrono_2; // On déclare la valeur courante du chrono_2
unsigned long chrono_depart_2 = 0; // On déclare la valeur de départ du chrono_2
unsigned long periode; // On déclare la période calculée pour 1 tour de roue
unsigned int duree_inactivite = 1000; // On définit une durée d'inactivité de la vitesse (si le véhicule n'avance plus pendant 1 seconde)

// On déclare les variables
float vitesse = 0;
float periR = 0,8792; // On déclare le périmètre de la roue (en mètre) => 28 cm * (3.14 / 100) = 0,8792 m
bool flagMesure = false;

void compteurInc()
{
  chrono = micros();
  periode = chrono - chrono_depart;
  chrono_depart = chrono;
  flagMesure = true; // On a une mesure de période valide
}

void setup()
// Fonction qui s'éxécute une seule fois au démarrage, ou après un reset
{
  Serial.begin(9600); // On initialise le moniteur série et sa vitesse de transfert à 9600 bits/s (ou Bauds)

  chrono_depart_2 = millis();

    attachInterrupt(0, compteurInc, FALLING); // La fonction compteurInc est appelée sur chaque front descendant (FALLING) du "capteur" (PIN 2 = interuption 0)
  digitalWrite(capteur, HIGH);
 }

void loop()
// Fonction qui s'éxécute en boucle, une fois la fonction void setup() éxécutée
{
  chrono_2 = millis();

  if (flagMesure == false && (chrono_2 - chrono_depart_2 > duree_inactivite)){
    vitesse = 0;
    Serial.print(vitesse,0);
    Serial.println(" km/h");
    delay(500);
  }
  else if (flagMesure)
  {
    noInterrupts();
    unsigned long t = periode;
    flagMesure = false;
    interrupts();
    vitesse=periR/1000/(t/1e6/3600); // On calcule la vitesse en fonction de la période et de la distance que parcourt la roue en 1 tour (périmètre). Autre méthode : (3600000.0/t)*periR
    Serial.print(vitesse,1);
    Serial.println(" km/h");
    chrono_depart_2 = millis(); // On remet à zéro le chronomètre de départ 2 (compteur d'inactivité)
  }
}

Si possible, pouvez-vous me le faire simplement avec Fritzing.

Autrement, le code peut-il être amélioré ou cela vous semble correct ?

Bonne soirée.

Tout en sachant que mon capteur dispose de 2 fils, un rouge (qui correspond au 5 V), et un blanc (qui correspond au 0 V).

C'est simplement un contact à l'intérieur, qui se déclenche dès qu'un aimant est à proximité.

arthurcorre_:
Tout en sachant que mon capteur dispose de 2 fils, un rouge (qui correspond au 5 V), et un blanc (qui correspond au 0 V).

C'est simplement un contact à l'intérieur, qui se déclenche dès qu'un aimant est à proximité.

bonsoir
Et qu'est ce qui te fais croire que ce serait un capteur "Hall" ? 8)
reference de "ce capteur" ?

@Artouste

Bonsoir,

Il se déclenche dès qu'un aimant passe devant le capteur. Je n'ai pas la référence du capteur, il m'a été imposé par mon lycée, je sais juste que c'est un inductif à 100%.

Bonne soirée.

arthurcorre_:
@Artouste

Bonsoir,

Il se déclenche dès qu'un aimant passe devant le capteur. Je n'ai pas la référence du capteur, il m'a été imposé par mon lycée, je sais juste que c'est un inductif à 100%.

Bonne soirée.

C'est quoi pour toi , un "inductif à 100 %" ? :sunglasses:

Perso , j'ai ma petite idée sur ce qu'est "ton capteur" (et je ne dois pas être le seul)

J'ai pas la science infuse malheureusement...

Ce capteur m'a été donné entre les mains je n'ai aucune donnée dessus.

J'ai simplement un aimant avec et deux fils de connexion.

Un de 5V (je pense que c'est l'alimentation) et l'autre de 0V (qui correspond à la sortie du capteur).

Quand l'aimant est détecté, le capteur donne du 5V en sortie et inversement il donne du 0V dans la présence d'un aimant.

Je peux pas te donner plus d'explications malheureusement.

arthurcorre_:
Ce capteur m'a été donné entre les mains je n'ai aucune donnée dessus.

Puisque tu l'a entre les mains , fais une(des) photos ;D

Une petite recherche google avec les mots bien choisi (voir post 4) et tu trouveras ton bonheur !

@Artouste

@pepe

Il s'agit du second cas. Mon professeur m'a certifié qu'il s'agit d'un contact électromagnétique.

Tu dis vrai à mon avis.

Donc ? Le programme peut il tenir la route avec ce type de capteur ?

Dois-je apporter des modifications ?

Il me semble qu'il est NO. Quand l'aimant n'est pas détecté le courant ne passe pas puisque ma LED ne se déclenche pas.

Il est ouvert en permanence sauf en présence d'un aimant où il est ouvert.

@pepe

En tout cas merci de ton aide.

Je t'avoue que mon professeur m'a donné ça en mode démerde toi...

Je suis assez débrouillard en temps normal...

Là je suis largué, j'ai pas une seule référence pour le capteur, à mon avis il vient de Wish.

Deux pauvres fils un capteur et un aimant...

Qu'est ce que je peux faire de plus sérieusement