學會了步進馬達的控制,接下來就是感測器的實作了。這一次要實作的感測器是人體紅外線感測器,這個元件簡單好用,可靠度高,還有調整靈敏度(3到7公尺)和延時時間(0.3到600秒),非常受到歡迎,可以應用在非常多的場合。這個感測器的外觀如下:
背後只有有2個調整開關,另外只有3條線可以外接,分別是5V、資料線以及GND接地線。從下圖這個角度看過去,右邊是5V,接樹莓派的PIN2,中間是資料線,可以接任一GPIO輸出線,在此例我們接到PIN26,左邊則是接地線,我們把它接到PIN6。
另外,為了在感測到移動的物體,我們還接了LED做為指示之用。如下圖,PIN11接到LED的正極,LED的負極接到電阻,電阻的另外一頭接到PIN9。
下圖是內部的連線照片:
照往例,還是先來看一下成果:
程式碼如下:
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下才停止。如果配合上電晶體開關電路再加上繼電器,就可以控制電燈開關了。另外,也可以驅動照相機,把經過的物體的照片拍下來喔。
(8286)
近期留言