一起玩轉樹莓派(15)——幹簧管傳感器

一起玩轉樹莓派(15)——幹簧管傳感器

    幹簧管傳感器又被稱爲磁簧開關。顧名思義,其功能是可以感知周圍的磁場從而改變開關的狀態。本次實驗,我們使用的幹簧管傳感器模塊如下圖所示:

可以看到,此模塊的核心是一個磁簧開關,附帶LED指示燈與靈敏度調節電阻。磁簧開關的工作原理非常簡單,兩片金屬薄片密封於一個玻璃管內,金屬片間有非常細的一個縫隙,常態下,兩金屬片不連通,電路斷開,當有磁場靠近玻璃管時,外加的磁場會使兩金屬片端點附近產生不同的磁極,從而吸引閉合,電路接通。玻璃管內通常會充滿惰性氣體或者抽成真空狀態,使得幹簧管性能和耐用度可以最大程度的提高。

    本實驗所使用的幹簧管模塊電路原理如下圖所示:

此模塊包含兩個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()

在樹莓派上運行上面代碼,當使用磁體靠近幹簧管時,即可通過打印信息看到開關狀態,同樣也可以通過信號指示燈的明暗來獲知磁簧開關的狀態。如下圖所示:

專注技術,懂的熱愛,願意分享,做個朋友

QQ:316045346

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章