Arduino 如何检查led在一段时间内是否闪烁?

Arduino 如何检查led在一段时间内是否闪烁?,arduino,led,Arduino,Led,我需要检查LED是否每2秒闪烁一次……可能吗?我使用的是Arduino Mega 2560。谢谢。根据LED本身的不同,有多种选择 如果您可以访问LED的接线(我假设为5V!),您可以将Arduino的中断引脚与其连接,并将其连接到公共GND。现在,您可以计算“开启”次数,并按时间对其进行划分,以获得平均值,该值应等于2 示例代码(未测试!): 如果你无法接触到线路,你可以使用光传感器来产生类似的信号 我希望这符合你的需要,因为我不允许发表评论,所以我无法获得进一步的信息 #define

我需要检查LED是否每2秒闪烁一次……可能吗?我使用的是Arduino Mega 2560。谢谢。

根据LED本身的不同,有多种选择

如果您可以访问LED的接线(我假设为5V!),您可以将Arduino的中断引脚与其连接,并将其连接到公共GND。现在,您可以计算“开启”次数,并按时间对其进行划分,以获得平均值,该值应等于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++;
    }