目錄
- 點亮LED燈
- 硬體連接
- 代碼
- 閃爍的LED燈
- 呼吸燈
- 其他
點亮LED燈
硬體連接

找一個LED燈,連接如上圖,注意長短引腳,經過這些年的狂轟亂炸,大家對于這個應該不漠視,畢竟Arduino都進教材了,
代碼
我們先來看圖形化的版本:

from gpiozero import LED
led = LED(17)
led.on()
是的你沒有看錯,樹莓派點亮
LED只需要3行代碼,只需要像Python的turtle編程一樣匯入需要用到的LED類,然后生成一個表示連接在17號GPIO引腳的LED物件led,然后呼叫on()方法,就可以點亮LED燈了,是不是跟我們日常的思維很接近,LED有點亮的方法,就像是小貓和喵喵叫,汽車可以加速,獅子可以捕獵,這些動作就是方法,LED、小貓、汽車、獅子就是物件,
圖形化硬體之所以簡化了開源硬體編程,是因為開源硬體把常見的功能抽象成積木塊,而且提供了足夠簡單易用的介面,所以我們使用起來簡單方便,學習的門檻很低,但是圖形化在設計復雜程式的時候,盡管積木塊用起來很方便,寫復雜程式的時候也是有些有心無力,但是如果有一個軟體庫,提供了類似于圖形化編程積木塊一樣的編程介面,那么就會既像圖形化編程一樣容易上手,又保持了代碼編程的靈活性和簡潔性,當然了,不可否認,對小孩子肯定是積木編程更加方便,
閃爍的LED燈
GPIO Zero就是樹莓派基金會推出的,面向新手的樹莓派硬體Python編程方案,樹莓派官網上大部分開源硬體相關的新手專案都是用GPIO Zero庫來撰寫的,因為真的非常簡單,這個庫讀初學者非常友好,學習曲線非常平緩和平滑,非常有利于小孩子的學習,宣告式編程范式使得程式看起來跟命令式編程差不多,這樣在制作閃爍的LED燈一類的專案的時候甚至用不到回圈,下面我們看示例代碼,仍然是上圖的硬體連接,我們實作閃爍的LED燈,首先是while回圈版本:
from gpiozero import LED
from time import sleep
red = LED(17)
while True:
red.on()
sleep(1)
red.off()
sleep(1)
圖形化版本代碼如下:

只需要生成LED物件
red,然后在while回圈中不停的啟動on()和關閉off()LED就可以了,間隔是1s,是不是很簡單,然而,還有更簡單的,
呼吸燈
from gpiozero import LED
from signal import pause
red = LED(17)
red.blink()
pause()
匯入需要的類和函式之后,在GPIO17連接一個LED,然后告訴樹莓派,你需要讓這個LED燈blinblin的閃
red.blink(),就是呼叫LED物件red的blink()閃爍方法;后面pause()的作用是,只要天沒塌下來(強制終止程式)你就一直擱那兒閃得了,如果不加pause()那么,就會閃一次,然后結束了,
同樣的,呼吸燈也是如此的簡單:
from gpiozero import PWMLED
from time import sleep
led = PWMLED(17)
while True:
led.value = https://www.cnblogs.com/asworm/p/0 # off
sleep(1)
led.value = 0.5 # half brightness
sleep(1)
led.value = 1 # full brightness
sleep(1)
等效的圖形化代碼如下圖:

與閃爍的LED不同的是,因為呼吸燈要用到一種叫做PWM的技術,所以這里使用了不同的類PWMLed,但是代碼一樣很簡單,LED物件LED有值value屬性,只要設定為小數比如0.5,就是亮度是最亮值的一半兒,是不是很棒,還有更棒的,更簡單的代碼如下:
from gpiozero import PWMLED
from signal import pause
led = PWMLED(17)
led.pulse()
pause()
只需宣告一個LED,然后告訴LED你要做一個呼吸燈的動作pulse(),
注意
pulse()方法實作的呼吸燈效果是連續編號的,效果輕柔的很,可不是設定三種亮度不停回圈可以比的,
其他
GPIO Zero庫,之所以如此簡單,是因為它為常見的元器件提供了編程的介面,也就是常見的硬體在這個庫里都有對應的類,就像是一個封裝好的積木塊,而且你不需要考慮引腳的高電平還是低電平的問題,只要LED短腳接地,長腳接GPIO,只需要呼叫on()和off()方法就行了,細節的問題,GPIO Zero庫會幫你處理的,
比如,我要生成一個按鈕,先匯入庫from gpiozero import Button,好了按鈕的模板有了;然后利用按鈕模板模板Button生成一個按鈕物件button = Button(17),哦,這是17號引腳的按鈕;然后,告訴按鈕你備案下的時候,執行一個打招呼的函式sayHello(),也就是button.when_pressed = sayHello(),完全跟我們思考的方式一致,perfect,
我暑假開樹莓派社團就是用這個教學生,五年級的學生也可以掌握,一起來學習吧,可以加入釘釘群一起學習,每天下午兩點直播課,

大地與星空
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/189229.html
標籤:Python
上一篇:Python 爬取必應壁紙
下一篇:行程、執行緒、協程
