我正在尝试使用Arduino Uno打开和关闭LED。我正在使用PIR运动传感器作为输入。当PIR传感器未检测到任何东西时,我希望LED熄灭。但是,一旦它从引脚12读取了一个值,即使PIR传感器没有检测到任何东西,它也会保持导通状态。
我的代码:
value=readDigitalPin(a,'D12')
while value==1
writePWMVoltage (a, 'D6', 3)
end
while value==0
writePWMVoltage (a, 'D6', 0)
end
答案 0 :(得分:0)
尝试
value=readDigitalPin(a,'D12') {
if (value==1)
writePWMVoltage (a, 'D6', 3)
}
else {
writePWMVoltage (a, 'D6', 0)
}
end
这假定readDigitalPin唯一可能的返回值为0和1。如果不是,则替换
else {
使用
else if(value==0) {
其他返回值将被忽略。
答案 1 :(得分:0)
您是否尝试过将下拉电阻器连接到PIR传感器的输出? 我记得使用PIR传感器和Arduino运行模拟。我必须在输出引脚上添加一个下拉电阻,以确保在未检测到任何运动时该引脚保持低电平。
添加下拉电阻后,再次运行原始代码。
答案 2 :(得分:0)
因为有一个MATLAB标签和一些语法,所以我假设您使用的是Arduino的MATLAB Support软件包。如果是这样,请尝试以下操作:
while true
value=readDigitalPin(a,'D12');
if value==1
writePWMVoltage (a, 'D6', 3)
else
writePWMVoltage (a, 'D6', 0)
end
end
请注意,该代码也将在无限循环中运行,请随时使用数字引脚和按钮来打破循环。