首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据PIR运动传感器的输入打开和关闭LED?

如何根据PIR运动传感器的输入打开和关闭LED?
EN

Stack Overflow用户
提问于 2019-05-05 02:49:46
回答 3查看 149关注 0票数 0

我正在尝试使用Arduino Uno打开和关闭LED。我使用PIR运动传感器作为输入。我希望当PIR传感器没有检测到任何东西时,LED熄灭。然而,一旦它从引脚12读取一个值,即使PIR传感器没有检测到任何东西,它也会保持开启。

我的代码:

代码语言:javascript
复制
value=readDigitalPin(a,'D12')

while value==1
      writePWMVoltage (a, 'D6', 3)
end

while value==0
      writePWMVoltage (a, 'D6', 0)
end
EN

回答 3

Stack Overflow用户

发布于 2019-05-06 21:47:53

试一试

代码语言:javascript
复制
value=readDigitalPin(a,'D12') {
if (value==1)
      writePWMVoltage (a, 'D6', 3)
}
else {
      writePWMVoltage (a, 'D6', 0)
}
end

这假设readDigitalPin的唯一可能返回值是0和1。如果不是,则将

代码语言:javascript
复制
else {

使用

代码语言:javascript
复制
else if(value==0) {

其他返回值将被忽略。

票数 0
EN

Stack Overflow用户

发布于 2019-05-13 23:04:55

你有没有试过在PIR传感器的输出端接上下拉电阻?我记得使用PIR传感器和Arduino运行了一次模拟。我不得不在输出引脚上添加一个下拉电阻,以确保在没有检测到任何运动时引脚保持低电平。

添加下拉电阻后,再次运行原始代码。

票数 0
EN

Stack Overflow用户

发布于 2019-05-29 21:31:02

因为有一个MATLAB标记和一些语法,所以我假设您使用的是Arduino的MATLAB支持包。如果是,请尝试以下操作:

代码语言:javascript
复制
while true 
    value=readDigitalPin(a,'D12');
    if value==1
       writePWMVoltage (a, 'D6', 3)
    else
       writePWMVoltage (a, 'D6', 0)
    end
end

请注意,这段代码也将在无限循环上运行,您可以使用数字引脚和按钮来中断循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55985792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档