需要的材料
1.繼電器:繼電器是一種電控制器件,它實際上是用小電流去控制大電流運作的一種“自動開關”,我們這里用它來控制電燈。控制了繼電器就等於控制了電燈。
我購買的是某寶上3塊錢的“1路 5v繼電器”,這里的“幾路”指的是可用控制多少個電燈220v線路,5v指繼電器本身需要5v電壓來驅動,樹莓派本身提供5v電壓輸出所以這里選用5v
2.杜邦線:某寶幾塊錢一組40P,這里只需要三根,用於連接 樹莓派與繼電器
3.電燈+燈座+銅線+電源插頭
GPIO說明
GPIO是(General Purpose Input Output)的縮寫,也就是通用輸入輸出,是一種常見的硬件接口,用以表示開關量。
物理連接
1.樹莓派陣腳對應繼電器:
1.繼電器連接電路(220v電源線):
3.總示意圖
這里注意:GPIO18是針腳12,在BCM中的編碼
這種接線方法稱為:“常開端”接線方法,還有另一種“常閉端”接線方法,只需要將“NO”火線出口移動到“NC”位置
Python 控制腳本
樹莓派系統中自帶python IDE可直接編譯、調試代碼,比使用java方便
登錄樹莓派 點擊“菜單->編程->Thonny Python IDE” 啟動IDE代碼如下:
import RPi.GPIO as GPIO import time # BCM 編號方式 GPIO.setmode(GPIO.BCM) # 設置[以BCM編號為18(實際在樹莓派12針腳位置)]的GPIO口為輸出模式 GPIO.setup(18, GPIO.OUT) # 開啟 GPIO.output(18, GPIO.HIGH) time.sleep(5) #5秒后關閉 # 關閉 GPIO.output(18, GPIO.LOW) # 最后清理GPIO口 GPIO.cleanup()
micropython
from machine import Pin import time #第一個燈 relay_in1 = Pin(3, Pin.OUT) relay_in1.value(1) time.sleep(1) relay_in1.value(0) time.sleep(1) #第二個燈 relay_in2 = Pin(4, Pin.OUT) relay_in2.value(1) time.sleep(1) relay_in2.value(0) time.sleep(1)
我的繼電器帶有紅綠兩個LED指示燈,接通后紅色LED燈常亮,運行程序 當聽到 “啪” 的一聲,綠色LED 燈就會亮,同時220v燈泡點亮,按程序控制5秒后,再聽到 “啪” 的一聲,綠色LED 燈就會熄滅,同時220v燈泡熄滅。
知識擴展
1. RPi.GPIO模塊簡單介紹
函數 GPIO.setmode(mode)
說明 設置引腳的編號系統
輸入 mode:編號系統,GPIO.BOARD使用BOARD編號系統;GPIO.BCM使用BCM編號系統
函數 GPIO.setup(channel, dir)
說明 設置引腳的IO模式
參數 channel:引腳編號
dir:IO方向,GPIO.IN輸入;GPIO.OUT輸出
函數 GPIO.output(channel, state)
說明 設置引腳的輸出電平
參數 channel:引腳編號
參數 state:電平狀態,高電平:1/GPIO.HIGH/True;低電平:0/GPIO.LOW/False
函數 GPIO.input(channel)
說明 讀取引腳的輸入電平
參數 channel:引腳編號
返回 電平狀態,高電平:1/GPIO.HIGH/True;低電平:0/GPIO.LOW/False
函數 GPIO.cleanup()
說明 清理引腳
2.繼電器原理圖: