C++ 读取Arduino中闪烁的Led
所以这是一个简单的问题,我在一块板上有几个LED,根据它们的状态,它会触发一个命令来触发一个继电器。我陷入困境的地方是如何让Arduino看到一个闪烁的LED,我试图绕过它,但代码变得比我们想要的更大,所以它被废弃了,我重新开始。任何想法都会很有帮助。以下是基本代码:C++ 读取Arduino中闪烁的Led,c++,c,arduino,C++,C,Arduino,所以这是一个简单的问题,我在一块板上有几个LED,根据它们的状态,它会触发一个命令来触发一个继电器。我陷入困境的地方是如何让Arduino看到一个闪烁的LED,我试图绕过它,但代码变得比我们想要的更大,所以它被废弃了,我重新开始。任何想法都会很有帮助。以下是基本代码: int Relay = 2; int Led = 7; int Ball = 8; void setup() { Serial.begin(115200); pinMode(Relay, OUTPUT); pinMode
int Relay = 2;
int Led = 7;
int Ball = 8;
void setup()
{
Serial.begin(115200);
pinMode(Relay, OUTPUT);
pinMode(Led, INPUT);
pinMode(Ball, OUTPUT);
}
void loop()
{
digitalWrite (Relay, HIGH);
delay (500);
digitalWrite (Relay, LOW);
delay(300);
digitalRead(Led);
if(Led == HIGH)
{
digitalWrite(Ball, HIGH);
}
if(Led == LOW)
{
digitalWrite(Ball, LOW);
}
}
digitalRead(Led)
丢弃您正在读取的值,如果(Led==低)正在将管脚编号与电压电平进行比较,这是毫无意义的。你的意思是:
level=digitalRead(发光二极管)代码>
如果(level==HIGH){
…定义“闪烁”,您的意思是检测到它是“关”到“开”到“关”之间的延迟,还是其他延迟?您的代码只会看到“低”正如我所写的。如果你需要让程序的一部分闪烁它,另一部分读取它,你可能需要使用线程或中断来允许它一次做一件以上的事情。或者做一些严肃的FSM工作,它永远不会阻塞很长时间。digitalRead(Led);
你忽略了返回的值。你可以组合到:If(数码读取(Led)=高){…}其他{…}
我不希望您正在读取led。我希望您的Arduino的输入与led连接的位置相同。抱歉,我列出的代码不是用于闪烁的led,事实上,闪烁的led是稳定的开/关led,我要寻找的是当闪烁的led开始闪烁时,我将使用to执行中继命令以触发物理事件。很抱歉,我应该对代码进行注释,以便每个人都知道发生了什么,您看到的内容可以触发中继(Ball)很好,我想要的是,我有一个Led,它要么处于闪烁状态,要么处于关闭状态,当它闪烁时,我需要触发另一个继电器,那么我如何才能看到闪烁的Led。你真的看不到任何东西,你只能用digitalWrite()
使用digitalRead()
(但如上所述正确操作)。这将告诉您,LED亮起时电平高,不亮时电平低。没有特殊的“闪烁”状态。如果你的程序是控制LED的程序,那么你就是需要该程序的一部分进行闪烁以与需要知道的部分进行通信的人。我们不是来教基本编程技能的。我不是在闪烁LED,我需要Arduino的Pin来查看其状态,到目前为止,我无法用数字读取,我不确定Led是否闪烁太快,或者我需要换一种方式。然后听起来你是索尔。这里的代码显示如何读取pin,但“闪烁”不是一个可以读取的状态。除非你想坐在针上2-3秒,采集多个样本并解释结果。你怎么认为这是可能的?脉冲星命令,如果我理解它用于读取PWM或信号,闪烁的Led正是一个高低信号,但我感谢大家的帮助,我已经联系了我的老教练,我们找到了答案。