为什么人体红外感应模块一直输出高电平?
下面是非常简单的代码:bool a;
void setup() {
a=false;
Serial.begin(9600);
pinMode(A2,INPUT); //连人体红外感应模块输出端
pinMode(3,OUTPUT); //连LED灯
pinMode(4,INPUT_PULLUP); //连一个开关
pinMode(13,OUTPUT); //Arduino自带的LED灯
}
void loop() {
if(!digitalRead(4)){ //开关控制
delay(200);
while(!digitalRead(4));
delay(200);
a=!a;
}
if(a){
digitalWrite(13,HIGH);
}
else digitalWrite(13,LOW);
if(analogRead(A2)>500&&a){ //LED灯控制
analogWrite(3,153);
}
else{
analogWrite(3,0);
}
Serial.println(analogRead(A2));
}
即使没有人的时候A2依然输出的是高电平,数值大概在670-720之间。 木有实物连接,怎样猜?一般情况你先了解下,你的红外头的输出,在正常没有人是多少?在有人时是多少?用串口显示出来,你再程序中设置几个断点,看下卡在那了 670-720像是输入端悬空着,红外感应输出应该是数字型也即非零即一 cao57508 发表于 2017-2-2 18:34
木有实物连接,怎样猜?一般情况你先了解下,你的红外头的输出,在正常没有人是多少?在有人时是多少?用串 ...
行,我试试 林定祥 发表于 2017-2-3 11:44
670-720像是输入端悬空着,红外感应输出应该是数字型也即非零即一
我用的是模拟口
页:
[1]