學會了步進馬達的控制,接下來就是感測器的實作了。這一次要實作的感測器是人體紅外線感測器,這個元件簡單好用,可靠度高,還有調整靈敏度(3到7公尺)和延時時間(0.3到600秒),非常受到歡迎,可以應用在非常多的場合。這個感測器的外觀如下:

2016-04-20 16.37.02

背後只有有2個調整開關,另外只有3條線可以外接,分別是5V、資料線以及GND接地線。從下圖這個角度看過去,右邊是5V,接樹莓派的PIN2,中間是資料線,可以接任一GPIO輸出線,在此例我們接到PIN26,左邊則是接地線,我們把它接到PIN6。

2016-04-20 16.37.25

另外,為了在感測到移動的物體,我們還接了LED做為指示之用。如下圖,PIN11接到LED的正極,LED的負極接到電阻,電阻的另外一頭接到PIN9。

2016-04-20 16.30.35

下圖是內部的連線照片:

2016-04-20 16.30.28

照往例,還是先來看一下成果:

程式碼如下:

import RPi.GPIO as gpio
import time

gpio.setmode(gpio.BOARD)
gpio.setup(26, gpio.IN, pull_up_down=gpio.PUD_UP)
gpio.setup(11, gpio.OUT)

def action(channel):
    print "Motion detected"
    for i in range(10):
        gpio.output(11, True)
        time.sleep(0.2)
        gpio.output(11, False)
        time.sleep(0.2)

try:
    gpio.add_event_detect(26, gpio.RISING, callback=action, bouncetime=200)
    while True:
        time.sleep(1)
except:
    gpio.cleanup()

執行之後,就可以看到,當把手移動到感測器附近時,樹莓派的螢幕會輸出「Motion detected」字樣,然後LED會閃爍10下才停止。如果配合上電晶體開關電路再加上繼電器,就可以控制電燈開關了。另外,也可以驅動照相機,把經過的物體的照片拍下來喔。

(1991)