一起玩转树莓派(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)——干簧管传感器


上一篇:自上而下的理解网络(2)——HTTP篇


下一篇:photoshop教新手快速全面掌握中性灰磨皮方法