HI曲终人散 发表于 2017-2-2 17:47:14

为什么人体红外感应模块一直输出高电平?

下面是非常简单的代码:
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之间。

cao57508 发表于 2017-2-2 18:34:02

木有实物连接,怎样猜?一般情况你先了解下,你的红外头的输出,在正常没有人是多少?在有人时是多少?用串口显示出来,你再程序中设置几个断点,看下卡在那了

林定祥 发表于 2017-2-3 11:44:26

670-720像是输入端悬空着,红外感应输出应该是数字型也即非零即一

HI曲终人散 发表于 2017-2-9 11:10:02

cao57508 发表于 2017-2-2 18:34
木有实物连接,怎样猜?一般情况你先了解下,你的红外头的输出,在正常没有人是多少?在有人时是多少?用串 ...

行,我试试

HI曲终人散 发表于 2017-2-9 11:10:21

林定祥 发表于 2017-2-3 11:44
670-720像是输入端悬空着,红外感应输出应该是数字型也即非零即一

我用的是模拟口
页: [1]
查看完整版本: 为什么人体红外感应模块一直输出高电平?