SC-HR501红外线感应器模块
本帖最后由 Tottiii 于 2014-12-6 21:30 编辑曾几何时,还在新西兰上大学的我。一天回到家中,突然耳边响起震耳欲聋的警报声。。。差点没把自己给吓尿 。结果是忘了进门输入门禁密码。
今天偶得一个HC-SR501红外人体感应模块。为了缅怀一下逝去的青春,也决定不再只是做伸手党。今天准备发一张简单的帖子。还望坛子里的各位大大别取笑。这篇帖子主要是针对初学者吧,毕竟此模块能运用于自动开关,防盗报警器,自动空调等等。。。
21世纪被称为光学世纪,随着光电技术的发展。光学产品在人类生活中扮演了很重要的地位。今天我们要介绍的HC-SR501模块就是应用了热释电效应。
------------------------------------------------------------------------------------------
产品规格:
◦ 电压: 5V – 20V
◦ 电流: 65mA
◦ TTL 输出: 3.3V, 0V
◦ 激发方法: L – 不允许重复激发, H-允许重复激发
◦ 探测范围:<20 degree, < 7m
◦ 工作温度: – 15 ~ +70
------------------------------------------------------------------------------------------
从配图1可以看出,这个模块的连接其实是很简单的。主要就是GND-接地;OUT-是高低信号;Vcc-5V电压。下方左边的potentiometor是调节“灵敏度调控”:顺时针旋转是增大灵敏度(最大7m),逆时针是减小(最小2-3m)。下方右边的potentiometor是调节“延时调控”:顺时针旋转是增大延时(最大300s),逆时针是减小(最小5s)。
按图连接好,当首先通电的1分钟为启动状态,其具体表现是output会出现0-3次。然后将进入一般模式。其实这次的代码是很简单的。是用一盏LED来表示输出结果。当模块感应到人体后即会输出HIGH(3.3V)信号.当人体静止或离开则会输出LOW(0V)。
// The script is used to test the HC-SR501 infrared sensor
//Define Pins and variables
int ledpin = 13;
int Sout = 11;
int pinState = LOW;
int val = 0;
void setup() {
pinMode(ledpin, OUTPUT);
pinMode(Sout, INPUT);
Serial.begin(9600);
}
void loop() {
val = digitalRead(Sout); // read input
if (val == HIGH) { // input HIGH
digitalWrite(ledpin, HIGH); // LED ON
Serial.println("Motion Detected!!");
pinState = HIGH;
} else {
digitalWrite(ledpin, LOW); // turn LED OFF
if (pinState == HIGH){
Serial.println("Motion ended!");
pinState = LOW;
}
}
} 很不错的图文并茂教程,辛苦啦~~~~~
页:
[1]