Bonjour pour mon projet d'anémomètre j'utilise un capteur a effet hall pour mesurer la vitesse donc dans un premier temps il me faudrait le temps entre deux mesure du capteur pour déterminer la vitesse mais je bloque a ce niveaux la voici le bout de code que j'ai qui devrait afficher l'intervalle de temps entre deux mesure `#include <Wire.h>
#include "rgb_lcd.h"
const int hallPin = 2; // Pin du capteur à effet Hall, à adapter selon votre configuration
unsigned long previousMillis = 0; // Variable pour stocker le temps de la dernière détection
int interval = 1000; // Intervalle entre les mesures en millisecondes, à adapter selon vos besoins
int previousDetectionState = LOW; // Variable pour stocker l'état de détection précédent
rgb_lcd lcd;
const int colorR = 255;
const int colorG = 0;
const int colorB = 0;
int Led = 10; // Définir l'interface de la LED
void setup() {
Serial.begin(9600); // Initialise la communication série à 9600 bauds
pinMode(Led, OUTPUT);
// Configuration de l'écran LCD
lcd.begin(16, 2);
lcd.setRGB(colorR, colorG, colorB);
lcd.clear();
}
void loop() {
// Obtient le temps actuel
unsigned long currentMillis = millis();
// Effectue la mesure du capteur à effet Hall
int hallValue = digitalRead(hallPin);
// Vérifie si le capteur passe de LOW à HIGH (début de détection)
if (hallValue != previousDetectionState && hallValue == HIGH) {
// Affiche l'état de détection actuel
lcd.setCursor(0, 0);
lcd.print("Detection : Oui");
// Affiche l'écart de temps depuis la dernière détection haute
lcd.setCursor(0, 1);
lcd.print("Temps : ");
lcd.print(currentMillis - previousMillis);
lcd.print(" ms");
// Enregistre le temps actuel comme le dernier temps de détection haute
previousMillis = currentMillis;
}
// Met à jour l'état de détection précédent
previousDetectionState = hallValue;
// Autres instructions à exécuter pendant les intervalles de mesure
// ...
}
``#include <Wire.h>
#include "rgb_lcd.h"
const int hallPin = 2; // Pin du capteur à effet Hall, à adapter selon votre configuration
unsigned long previousMillis = 0; // Variable pour stocker le temps de la dernière détection
int interval = 1000; // Intervalle entre les mesures en millisecondes, à adapter selon vos besoins
int previousDetectionState = LOW; // Variable pour stocker l'état de détection précédent
rgb_lcd lcd;
const int colorR = 255;
const int colorG = 0;
const int colorB = 0;
int Led = 10; // Définir l'interface de la LED
void setup() {
Serial.begin(9600); // Initialise la communication série à 9600 bauds
pinMode(Led, OUTPUT);
// Configuration de l'écran LCD
lcd.begin(16, 2);
lcd.setRGB(colorR, colorG, colorB);
lcd.clear();
}
void loop() {
// Obtient le temps actuel
unsigned long currentMillis = millis();
// Effectue la mesure du capteur à effet Hall
int hallValue = digitalRead(hallPin);
// Vérifie si le capteur passe de LOW à HIGH (début de détection)
if (hallValue != previousDetectionState && hallValue == HIGH) {
// Affiche l'état de détection actuel
lcd.setCursor(0, 0);
lcd.print("Detection : Oui");
// Affiche l'écart de temps depuis la dernière détection haute
lcd.setCursor(0, 1);
lcd.print("Temps : ");
lcd.print(currentMillis - previousMillis);
lcd.print(" ms");
// Enregistre le temps actuel comme le dernier temps de détection haute
previousMillis = currentMillis;
}
// Met à jour l'état de détection précédent
previousDetectionState = hallValue;
// Autres instructions à exécuter pendant les intervalles de mesure
// ...
}
`