2017-09-22 6 views

Répondre

1

Il existe plusieurs options, en fonction de la DEL elle-même.

Si vous avez accès au câblage de la LED (je suppose 5V!), Vous pouvez connecter une broche d'interruption de l'Arduino et une GND commune. Maintenant, vous pouvez compter les "Turn Ons" et les diviser par le temps, pour obtenir une valeur moyenne, qui devrait être égale à deux.

Exemple de code serait (non testé!):

#define MEASUREPIN   2  // Watch https://www.arduino.cc/en/Reference/AttachInterrupt for infos 

    long measureStartTime{0};   // ms since start of first blink 
    long runTime{0};     // [ms] 
    long avgTime;      // [ms] 
    volatile long cycles{0}; 

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

     attachInterrupt(digitalPinToInterrupt(MEASUREPIN), countCycles, RISING); 
    } 

    void loop() { 
     if(measureStartTime == 0 && cycles == 0){ 
     Serial.println("Blink not started"); 
     }else{ 
     if(measureStartTime == 0){ 
      measureStartTime == millis(); 
     }else{ 
      runTime = millis()-measureStartTime; 
      avgTime = runTime/cycles; 
      Serial.print("Average blink interval: "); 
      Serial.print(avgTime); 
      Serial.println("ms"); 
     }  
     } 
    } 

    void countCycles(){ 
     cycles++; 
    } 

Si vous avez pas accès au câblage vous pouvez utiliser un LightSensor, pour générer un signal similaire.

J'espère que cela correspond à vos besoins, car je ne suis pas autorisé à commenter, donc je ne pouvais pas obtenir plus d'infos.