日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python控制灯_Python 控制树莓派 GPIO 输出:控制 LED 灯

發(fā)布時(shí)間:2023/12/9 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python控制灯_Python 控制树莓派 GPIO 输出:控制 LED 灯 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

樹(shù)莓派 GPIO 控制輸出的入門(mén)應(yīng)該都是從控制 LED 燈開(kāi)始的吧。

樹(shù)莓派版本:Model 3B+

樹(shù)莓派系統(tǒng):Raspbian Stretch with desktop and recommended software,April 2019

連接裝置

準(zhǔn)備一個(gè) LED 燈,兩個(gè)兩頭都為母的杜邦線。對(duì)照下圖連接樹(shù)莓派和 LED 燈,要求一個(gè)是地線(GND)連接燈的負(fù)極,一個(gè)有 GPIO + BCM 編號(hào)連接正極。我選擇了 pin 號(hào)為 6 和 12 的兩個(gè)引腳。你也可以選擇別的,記得將之后的代碼中 BCM 編號(hào)修改正確

在斷電狀態(tài)下連接。連接好的如下圖,我的 LED 燈有正負(fù)極的提示,圖中所示紅色箭頭指向的是正極,藍(lán)色箭頭是負(fù)極。如果你的 LED 燈是最簡(jiǎn)單的那種,長(zhǎng)引腳就是正極,短的負(fù)極。

樹(shù)莓派開(kāi)機(jī)。

安裝 RPI.GPIO

我裝的樹(shù)莓派系統(tǒng)已經(jīng)滿足所需要的環(huán)境,不需要額外下載。

你可以測(cè)試是否已經(jīng)有該模塊,在終端打開(kāi) Python3,然后嘗試導(dǎo)入庫(kù): import RPi.GPIO as GPIO 。如果沒(méi)有出現(xiàn)error,就表示已經(jīng)有了,可以直接跳到下一步。

如果出現(xiàn)錯(cuò)誤,則執(zhí)行以下命令:

sudo apt-get updatesudo apt-get install python3-rpi.gpio

測(cè)試 GPIO

按下圖所示依次輸入命令,觀察。

GPIO.setmode() 有兩種參數(shù)可以選擇:可以使用 GPIO.BOARD 選項(xiàng)告訴庫(kù)根據(jù) GPIO 接口的引腳號(hào)引用信號(hào),或者使用 Broadcom 芯片的信號(hào)編號(hào)( GPIO.setmode(GPIO.BCM) )。

在選擇了模式之后,需要確定在程序中使用哪一個(gè) GPIO 信號(hào)以及將家門(mén)用來(lái)作為輸入還是輸出:GPIO.setup(channel, direction)。我給的例子里是 GPIO.setup(18, GPIO.OUT) 。

后面兩個(gè)命令控制燈的開(kāi)關(guān): GPIO.output(18, GPIO.HIGH) 和 GPIO.output(18, GPIO.LOW) 。

GPIO.cleanup() 用于重置 GPIO 接口,它把所有的 GPIO 引腳設(shè)置為低電平狀態(tài),所以沒(méi)有多余的信號(hào)出現(xiàn)在界面上。在不使用改函數(shù)的情況下,如果試圖配置一個(gè)已分配信號(hào)值的 GPIO 信號(hào)引腳,那么 RPi.GPIO 模塊會(huì)產(chǎn)生一條警告信息。

閃爍 LED

然后我在樹(shù)莓派上編寫(xiě)了下面這個(gè)代碼讓 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('開(kāi)始閃爍')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é)果:

也可以以通過(guò)PWM 信號(hào)來(lái)達(dá)到讓燈閃爍的效果。

#!/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)。在開(kāi)始 PWM 信號(hào)后,程序就可以解放出來(lái)做其他事情了。GPIO 18 會(huì)持續(xù)發(fā)送 PWM 信號(hào),直到停止它。 blink = GPIO.PWM(18, 1) 指定了 PWM 信號(hào)以 1HZ 的頻率發(fā)送,燈 1 秒閃爍一次。按 Control + C 中止閃爍。

參考資料

《樹(shù)莓派Python編程 入門(mén)與實(shí)戰(zhàn)(第2版)》,人民郵電出版社

總結(jié)

以上是生活随笔為你收集整理的python控制灯_Python 控制树莓派 GPIO 输出:控制 LED 灯的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。