2017-09-22 1 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를 사용할 수있는 배선에 액세스하지 않은 경우, 유사한 신호를 생성합니다.

나는 의견을 말할 수 없기 때문에 귀하의 필요에 부응하기를 바랍니다. 그래서 나는 더 이상의 정보를 얻을 수 없었습니다.

관련 문제