1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python树莓派3控制蜂鸣器_树莓派3 modelB型 连接HC-SR501人体红外感应模块和蜂鸣器模块...

python树莓派3控制蜂鸣器_树莓派3 modelB型 连接HC-SR501人体红外感应模块和蜂鸣器模块...

时间:2021-11-03 19:06:26

相关推荐

python树莓派3控制蜂鸣器_树莓派3 modelB型 连接HC-SR501人体红外感应模块和蜂鸣器模块...

连接前准备

树莓派3 modelB型一个

HC-SR501传感器一只

低电平蜂鸣器模块(有源)即接上电就会响,低电平触发

母对母杜邦线三根

实物图如下:

博主连接的不是特别美观

两个传感器的连接图分别如下

HC-SR501模块连接注意

最左边引脚接的是pin2,中间数据引脚接的是pin12,最右边引脚接pin6

蜂鸣器模块连接注意

vcc接3.3v也就是pin1,I/O引脚接pin11,GND引脚接pin9

将所有模块连接好连上树莓派

代码import RPi.GPIO as GPIO

import time

def init():

GPIO.setwarnings(False)

GPIO.setmode(GPIO.BOARD)

GPIO.setup(12, GPIO.IN)

GPIO.setup(11,GPIO.OUT)

pass

def beep():

for i in range(1,6):

GPIO.output(11, GPIO.LOW) #蜂鸣器低电平响

time.sleep(0.5)

GPIO.output(11, GPIO.HIGH)

time.sleep(0.5)

print "the Buzzer will make sound"

def detct():

for i in range(1, 31):

if GPIO.input(12) == True:

print time.strftime(''''''''%Y-%m-%d %H:%M:%S'''''''',time.localtime(time.time()))+" Someone is closing!"

beep()

else:

GPIO.output(11, GPIO.HIGH)

print time.strftime(''''''''%Y-%m-%d %H:%M:%S'''''''',time.localtime(time.time()))+" Noanybody!"

time.sleep(6) #每6秒检查一次

time.sleep(2)

init()

detct()

GPIO.cleanup()

博主比较懒没有写注释,大概解释下HC-SR501模块感应到有人时(人必须要移动,不然也检测不到)会输出高电平,特别要注意的是HC-SR501模块有一个封锁时间(默认设置为3-4秒),就是当检测到有人时,持续输出信号后,接下来的一段时间内,树莓派不会接受任何信号了,又因为HC-SR501模块默认是可重复触发方式,检测到有人后会在接下来的一段时间(大概3秒)内一直输出高电平(这个时间也就是延时,可以通过模块上的按钮来调节,博主逆时针调到不能转动的样子,时间估计在3秒左右),这个延时时间和封锁时间加起来大概在6秒左右,所以博主设置为6秒检查一次,蜂鸣器检测到有人就响5次。

模块测试

先上图

博主经过一下午的测试这一次测试算是比较成功的,博主测试时是将传感器放在桌子上,自己在远处走过来走过去这样测试的,必须要动这样才能检测出来,HC-SR501传感器对环境要求比较高,我们可以从它的说明书中得知,环境影响很大,最开始我将采集数据的时间设置为2s的时候总是不对劲,改成6s之后数据就正常了,博主具体原因不清楚,但是我认为是封锁时间造成的,改成6s之后,避免封锁时间内,传感器没数据发送低电平出现测试不准确,感兴趣的人可以找找有关文章了解一下。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。