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

    干簧管传感器又被称为磁簧开关。顾名思义,其功能是可以感知周围的磁场从而改变开关的状态。本次实验,我们使用的干簧管传感器模块如下图所示:

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

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

    本实验所使用的干簧管模块电路原理如下图所示:

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

此模块包含两个LED提示灯,当接通电源时,电源提示LED灯亮,当磁簧开关闭合时,输出提示LED灯亮。

    在本实验中测试干簧管模块的开关功能,还需要准备一个磁石。干簧管模块与树莓派连线如下:

干簧管模块 树莓派
VCC 3.3V电源
GND GND
DO GPIO17(BCM编码)

本实验代码本身非常简单,如下:

#coding:utf-8
import RPi.GPIO as GPIO
reed = 11

def 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)——干簧管传感器

专注技术,懂的热爱,愿意分享,做个朋友

QQ:316045346