樹莓派是一臺微型計算機,可以用來學習計算機知識,熟悉Linux系統操作。也可以作為單片機來學習各種電子元器件的應用。
用樹莓派點亮一個LED燈是非常簡單的事情,但意義卻非常重大。首次能用樹莓派去控制LED燈,領會樹莓派神奇的世界。
有關GPIO的介紹,可以先關注我,再查看我的文章,其中有一篇就是介紹GPIO的。這一篇文章主要介紹用樹莓派點亮LED燈及控制流水燈。
準備
- 樹莓派主機一臺
- 樹莓派GPIO擴展板
- 發光LED燈
- 電阻
- 杜邦線
- 麵包板
點亮LED
首先要用一個1kΩ的電阻串聯到發光LED的正極上,再把電阻的另一端接到GPIO18接口上,把發光LED燈的負極接到GND上。接線圖如下:
接完線後,就可以寫代碼:
#!/usr/bin/env python
import RPi.GPIO as GPIO # 引入GPIO模塊
import time # 引入time模塊
GPIO.setmode(GPIO.BCM) # 使用BCM編號方式
GPIO.setup(18, GPIO.OUT) # 將GPIO18設置為輸出模式
if __name__ == '__main__':
try:
while True: # 無限循環
GPIO.output(18, True) # 將GPIO18設置為高電平,點亮LED
time.sleep(1) # 等待1秒鐘
GPIO.output(18, False) # 將GPIO18設置為低電平,熄滅LED
time.sleep(1) # 等待1秒鐘
finally:
GPIO.cleanup() # 清理釋放GPIO資源,將GPIO復位
流水燈
首先還是佈線,這一次用5個LED燈,每個LED燈都串聯一個1kΩ的電阻,如下圖:
編寫代碼:
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
# BCM GPIO編號
pins = [5, 6, 13, 19, 26]
def setup():
# 採用BCM編號
GPIO.setmode(GPIO.BCM)
# 設置所有GPIO為輸出狀態,且輸出低電平
for pin in pins:
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW)
def loop():
while True:
# 循環點亮
for pin in pins:
GPIO.output(pin, GPIO.HIGH)
time.sleep(0.1)
GPIO.output(pin, GPIO.LOW)
time.sleep(0.1)
def destroy():
for pin in pins:
GPIO.output(pin, GPIO.LOW)
GPIO.setup(pin, GPIO.IN)
if __name__ == '__main__':
# 初始化GPIO
setup()
try:
loop()
except KeyboardInterrupt:
# 恢復GPIO口狀態
destroy()
GPIO.cleanup()
最終效果如下:
閱讀更多 PY程序猿 的文章