无法在arduino上无限期打开继电器

无法在arduino上无限期打开继电器,arduino,sensors,relay,Arduino,Sensors,Relay,我想制造一个类似Knocki()的设备,它本质上是一个使用振动传感器的继电器控制。我可以检测到振动,但问题是,一旦我敲击继电器,它就会闪烁,然后熄灭。我理解这是由于缺乏编程造成的。有人能帮我写代码,这样当我敲击继电器时,继电器就会无限期地打开;直到我再次敲门以关闭继电器 是的,你可能知道这个代码是从某个地方复制来的(从振动传感器的主页上获取的。该代码最初是这样的,每次我敲门时,车载Arduino led都会亮起。此外,现在继电器在每次我敲门时都会微弱地闪烁(尽管正确,与我的敲门同步) 如果你从电

我想制造一个类似Knocki()的设备,它本质上是一个使用振动传感器的继电器控制。我可以检测到振动,但问题是,一旦我敲击继电器,它就会闪烁,然后熄灭。我理解这是由于缺乏编程造成的。有人能帮我写代码,这样当我敲击继电器时,继电器就会无限期地打开;直到我再次敲门以关闭继电器

是的,你可能知道这个代码是从某个地方复制来的(从振动传感器的主页上获取的。该代码最初是这样的,每次我敲门时,车载Arduino led都会亮起。此外,现在继电器在每次我敲门时都会微弱地闪烁(尽管正确,与我的敲门同步)


如果你从电路板上给继电器供电,那不是问题。请在试着打开继电器时检查继电器中的电压,如果电压下降,这意味着继电器的输出没有提供必要的电流。

代码中的“是”:这个(坏的)示例之所以有效,是因为

digitalWrite(SensorLED,HIGH);
->>>   delay(500);
延迟1/2秒以保持led亮起。因此,作为一项检查,在中继线之后放置另一个延迟,该延迟也应持续1/2秒(因此led总共亮起1秒)

这只是为了检查->下一步:
消除延迟(参见中的blinkwithoutdelay示例

Arduino->File->Examples->2.Digital -> blinkwithoutdelay

并引入第二个状态变量,例如

 bool relayStateOn = false;

独立打开/关闭继电器和led。(如果是-我理解-你想做什么)

请在数据表中检查继电器所需的电压和电流。继电器可能需要更多的电源才能继续工作。@RobertoFRey这是一个简单的5v继电器。但现在你提到了,我的电路板正在为我的3.3V上的5v继电器和振动传感器供电。这有什么区别吗?我想能够用手敲击以及继电器的开启或关闭。现在,我的敲击只是让继电器停止一段时间,然后再开启。我希望它保持关闭状态,直到我再次敲击,有点像开关一样。是的,我理解你的愿望。你是否像我写的那样更改了代码,这里没有人会为你编写程序-所以请展示你所做的更改-edi您的问题是,您如何毫不延迟地集成,等等。在文档中查看您的继电器是高闭合还是低闭合。一些PCB继电器通过集成电子设备提供这两种选项。因此,请查看您是否有正确的输入,以及程序状态是否适合硬件连接
Arduino->File->Examples->2.Digital -> blinkwithoutdelay
 bool relayStateOn = false;