lkq313095929 发表于 2017-9-24 23:21:04

人体感应灯 热释红外传感器+继电器+灯

代码部分:
int PIRpin=8;
int RELAYpin=3;
void setup()
{
Serial.begin(9600);
pinMode(PIRpin,INPUT);
pinMode(RELAYpin,OUTPUT);
}
void loop()
{
while(!digitalRead(PIRpin)){}
Serial.println("on");
digitalWrite(RELAYpin,HIGH);
delay(1000);
digitalWrite(RELAYpin,LOW);
   Serial.println("off");
}

当无人的时候,输入信号为低电平,继电器常开不工作,灯不亮。
当检测到有人时候,输入信号为高电平,继电器常开闭合,灯亮。

lkq313095929 发表于 2017-9-24 23:23:25

大家看看哪里有问题,为什么红外感应没有反应,动电阻,才会有2下吸合的声音,大神们求解???

galaxy 发表于 2017-9-25 01:54:43

應該是電阻的.....
1. 銲接不良,或接觸不良(再補銲接好)
2. 電阻不良 (更換之)

D19TCI 发表于 2017-9-25 09:01:50

用“热释红外传感器+继电器+灯”就可以实现的功能,干嘛要用到单片机??

geek-r 发表于 2017-9-25 13:48:49

D19TCI 发表于 2017-9-25 09:01
用“热释红外传感器+继电器+灯”就可以实现的功能,干嘛要用到单片机??

我试过这种方法,热释红外传感器的输出电流太小,无法触发继电器工作。
自己做一个NPN型开关电路(三极管8050+二极管4148),加上热释红外传感器做感应灯就够了,继电器也省了。效果很好。

newspaper 发表于 2017-10-26 21:30:34

请教一个问题
楼主上面的代码
void loop()
{
while(!digitalRead(PIRpin)){}
Serial.println("on");
digitalWrite(RELAYpin,HIGH);
delay(1000);
digitalWrite(RELAYpin,LOW);
   Serial.println("off");
}


如果人在红外感应区域一直触发,也是先关掉灯然后才亮,虽然短,但也是关了。如何改成人如果一直触发红外,就让灯一直亮。 直到检测不到触发才关灯。

发烧的小学生 发表于 2018-4-20 15:45:42

newspaper 发表于 2017-10-26 21:30
请教一个问题
楼主上面的代码
void loop()


那就是让红外传感器持续输出高电平,
只需要在红外传感器上修改跳线为持续输出就可以
页: [1]
查看完整版本: 人体感应灯 热释红外传感器+继电器+灯