一起玩转树莓派(15)——干簧管传感器

【一起玩转树莓派(15)——干簧管传感器】青春须早为,岂能长少年。这篇文章主要讲述一起玩转树莓派(15)——干簧管传感器相关的知识,希望能为你提供帮助。
一起玩转树莓派(15)——干簧管传感器干簧管传感器又被称为磁簧开关。顾名思义,其功能是可以感知周围的磁场从而改变开关的状态。本次实验,我们使用的干簧管传感器模块如下图所示:

一起玩转树莓派(15)——干簧管传感器

文章图片

可以看到,此模块的核心是一个磁簧开关,附带LED指示灯与灵敏度调节电阻。磁簧开关的工作原理非常简单,两片金属薄片密封于一个玻璃管内,金属片间有非常细的一个缝隙,常态下,两金属片不连通,电路断开,当有磁场靠近玻璃管时,外加的磁场会使两金属片端点附近产生不同的磁极,从而吸引闭合,电路接通。玻璃管内通常会充满惰性气体或者抽成真空状态,使得干簧管性能和耐用度可以最大程度的提高。
本实验所使用的干簧管模块电路原理如下图所示:
一起玩转树莓派(15)——干簧管传感器

文章图片

此模块包含两个LED提示灯,当接通电源时,电源提示LED灯亮,当磁簧开关闭合时,输出提示LED灯亮。
在本实验中测试干簧管模块的开关功能,还需要准备一个磁石。干簧管模块与树莓派连线如下:
干簧管模块 树莓派
VCC 3.3V电源
GND GND
DO GPIO17(BCM编码)
本实验代码本身非常简单,如下:
#coding:utf-8 import RPi.GPIO as GPIO reed = 11def trigger(channel): print(\'当前开关状态:%s\'%(\'关\' if GPIO.input(reed) else \'开\'))def setup(): GPIO.setmode(GPIO.BOARD) # 当开关未闭合时,信号引脚将输出高电平,默认设置上拉电阻 GPIO.setup(reed, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.add_event_detect(reed, GPIO.BOTH, callback=trigger, bouncetime=200)def destroy(): GPIO.cleanup()if __name__ == \'__main__\': setup() try: while True: pass # 主动退出时 清除资源 except KeyboardInterrupt: destroy()

在树莓派上运行上面代码,当使用磁体靠近干簧管时,即可通过打印信息看到开关状态,同样也可以通过信号指示灯的明暗来获知磁簧开关的状态。如下图所示:
一起玩转树莓派(15)——干簧管传感器

文章图片


    推荐阅读