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