python控制树莓派led_Python 控制树莓派 GPIO 输出:控制 LED 灯
樹莓派 GPIO 控制輸出的入門應(yīng)該都是從控制 LED 燈開始的吧。
樹莓派版本:Model 3B+
樹莓派系統(tǒng):Raspbian Stretch with desktop and recommended software,April 2019
連接裝置
準備一個 LED 燈,兩個兩頭都為母的杜邦線。對照下圖連接樹莓派和 LED 燈,要求一個是地線(GND)連接燈的負極,一個有?GPIO + BCM 編號連接正極。我選擇了 pin 號為 6 和 12 的兩個引腳。你也可以選擇別的,記得將之后的代碼中 BCM 編號修改正確
在斷電狀態(tài)下連接。連接好的如下圖,我的 LED 燈有正負極的提示,圖中所示紅色箭頭指向的是正極,藍色箭頭是負極。如果你的 LED 燈是最簡單的那種,長引腳就是正極,短的負極。
樹莓派開機。
安裝 RPI.GPIO
我裝的樹莓派系統(tǒng)已經(jīng)滿足所需要的環(huán)境,不需要額外下載。
你可以測試是否已經(jīng)有該模塊,在終端打開 Python3,然后嘗試導(dǎo)入庫:?import RPi.GPIO as GPIO?。如果沒有出現(xiàn)error,就表示已經(jīng)有了,可以直接跳到下一步。
如果出現(xiàn)錯誤,則執(zhí)行以下命令:
sudo apt-get updatesudo apt-get install python3-rpi.gpio
測試 GPIO
按下圖所示依次輸入命令,觀察。
GPIO.setmode() 有兩種參數(shù)可以選擇:可以使用 GPIO.BOARD 選項告訴庫根據(jù) GPIO 接口的引腳號引用信號,或者使用 Broadcom 芯片的信號編號(?GPIO.setmode(GPIO.BCM)?)。
在選擇了模式之后,需要確定在程序中使用哪一個 GPIO 信號以及將家門用來作為輸入還是輸出:GPIO.setup(channel, direction)。我給的例子里是?GPIO.setup(18, GPIO.OUT)?。
后面兩個命令控制燈的開關(guān):?GPIO.output(18, GPIO.HIGH)?和?GPIO.output(18, GPIO.LOW)?。
GPIO.cleanup()?用于重置 GPIO 接口,它把所有的 GPIO 引腳設(shè)置為低電平狀態(tài),所以沒有多余的信號出現(xiàn)在界面上。在不使用改函數(shù)的情況下,如果試圖配置一個已分配信號值的 GPIO 信號引腳,那么 RPi.GPIO 模塊會產(chǎn)生一條警告信息。
閃爍 LED
然后我在樹莓派上編寫了下面這個代碼讓 LED 燈閃爍五次,保存在 Desktop,命名為 led.py。
#!/usr/bin/python3
importRPi.GPIO as GPIOimporttime
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
GPIO.output(18, GPIO.LOW)
blinks=0print('開始閃爍')while (blinks < 5):
GPIO.output(18, GPIO.HIGH)
time.sleep(1.0)
GPIO.output(18, GPIO.LOW)
time.sleep(1.0)
blinks= blinks + 1GPIO.output(18, GPIO.LOW)
GPIO.cleanup()print('結(jié)束閃爍')
演示結(jié)果:
也可以以通過PWM 信號來達到讓燈閃爍的效果。
#!/usr/bin/python3
importRPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
blink= GPIO.PWM(18, 1)try:
blink.start(50)whileTrue:pass
exceptKeyboardInterrupt:
blink.stop()
GPIO.cleanup()
start() 方法指定了占空比(從 1 到 100)。在開始 PWM 信號后,程序就可以解放出來做其他事情了。GPIO 18 會持續(xù)發(fā)送 PWM 信號,直到停止它。?blink = GPIO.PWM(18, 1)?指定了 PWM 信號以 1HZ 的頻率發(fā)送,燈 1 秒閃爍一次。按 Control + C 中止閃爍。
參考資料
《樹莓派Python編程 入門與實戰(zhàn)(第2版)》,人民郵電出版社
總結(jié)
以上是生活随笔為你收集整理的python控制树莓派led_Python 控制树莓派 GPIO 输出:控制 LED 灯的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高斯消去法c++_高斯消去法的算法改进
- 下一篇: python变量保存在哪里_python