#define PIN_IN 2 void setup() { pinMode(PIN_IN, INPUT); Serial.begin(9600); } void loop() { unsigned long loop_time = 250; // temps de boucle en microsecondes unsigned long settle_time = 50000; // temps de stabilisation en microsecondes unsigned long step_time = 0; // Charge la broche de sortie pendant "loop_time" microsecondes pinMode(PIN_IN, OUTPUT); digitalWrite(PIN_IN, HIGH); delayMicroseconds(loop_time); // Mesure le temps de montée pinMode(PIN_IN, INPUT); unsigned long start_time = micros(); while (digitalRead(PIN_IN) == LOW) { // Attendez que la broche d'entrée passe à l'état haut if (micros() - start_time > settle_time) { // Si le temps de stabilisation est dépassé, sortez de la boucle break; } } step_time = micros() - start_time; Serial.print("Temps de montée : "); Serial.print(step_time); Serial.println(" µs"); delay(1000); // Attendre 1 seconde avant la prochaine mesure }