2017-09-22 19 views

答えて

1

複数のオプションがありますが、LED自体によって異なります。

LEDの配線(私は5Vと仮定しています)にアクセスすれば、Arduinoの割り込みピンと共通のGNDを接続できます。今度は、 "Turn Ons"を数え、Timeで割り、平均値を求めます。これは2に等しくなければなりません。

サンプルコードはされるだろう(テストしていない!):

#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++; 
    } 

あなたがlightsensorを使用することができ、配線にアクセスしていない場合は、同様の信号を生成します。

私はコメントできないので、あなたのニーズに合うことを望みます。私はさらに情報を得ることができませんでした。

関連する問題