樹莓派GPIO控制RGB彩色LED燈

2021-08-07 14:09:19 字數 2130 閱讀 5054

樹莓派gpio通過pwm來控制rgb彩色led燈,可以顯示任何我們想要的顏色。

這個rgb彩色led裡其實有3個燈,分別是紅燈、綠燈和藍燈。控制這三個燈分別發出不同強度的光,混合起來就能發出各種顏色的光了。 led燈上的4根引腳分別是gnd,r,g,b。 gnd需要接地。我們把它連到樹莓派的電源地上。 r,g,b分別是紅綠藍燈的正極介面。我們把它們連線到樹莓派的gpio口上。

g連線樹莓派gpio15

b連線樹莓派gpio14

其中gpio編號方式為bcm編號方式,具體請看

電路連線原理圖如下:

新建rgb_led.py檔案,輸入以下**:

#!/usr/bin/env python

# encoding: utf-8

import rpi.gpio

import time

r,g,b=18,

15,14

rpi.gpio.setmode(rpi.gpio.bcm)

rpi.gpio.setup(r, rpi.gpio.out)

rpi.gpio.setup(g, rpi.gpio.out)

rpi.gpio.setup(b, rpi.gpio.out)

pwmr = rpi.gpio.pwm(r,50)

pwmg = rpi.gpio.pwm(g,50)

pwmb = rpi.gpio.pwm(b,50)

pwmr.start(0)

pwmg.start(0)

pwmb.start(0)

try:

t =1while

true

:# 紅色燈全亮,藍燈,綠燈全暗(紅色)

pwmr.changedutycycle(

100)

pwmg.changedutycycle(0)

pwmb.changedutycycle(0)

time.sleep(t)

# 綠色燈全亮,紅燈,藍燈全暗(綠色)

pwmr.changedutycycle(0)

pwmg.changedutycycle(

100)

pwmb.changedutycycle(0)

time.sleep(t)

# 藍色燈全亮,紅燈,綠燈全暗(藍色)

pwmr.changedutycycle(0)

pwmg.changedutycycle(0)

pwmb.changedutycycle(

100)

time.sleep(t)

# 紅燈,綠燈全亮,藍燈全暗(黃色)

pwmr.changedutycycle(

100)

pwmg.changedutycycle(

100)

pwmb.changedutycycle(0)

time.sleep(t)

# 紅燈,藍燈全亮,綠燈全暗(洋紅色)

pwmr.changedutycycle(

100)

pwmg.changedutycycle(0)

pwmb.changedutycycle(

100)

time.sleep(t)

# 綠燈,藍燈全亮,紅燈全暗(青色)

pwmr.changedutycycle(0)

pwmg.changedutycycle(

100)

pwmb.changedutycycle(

100)

time.sleep(t)

# 紅燈,綠燈,藍燈全亮(白色)

pwmr.changedutycycle(

100)

pwmg.changedutycycle(

100)

pwmb.changedutycycle(

100)

time.sleep(t)

except keyboardinterrupt:

pass

pwmr.stop(

)pwmg.stop(

)pwmb.stop()

rpi.gpio.cleanup(

)python

copy

然後,執行這個py指令碼,就可以看到rgbled燈在7種顏色間切換。

樹莓派GPIO控制 python篇

樹莓派的軟體擴充套件庫雖然很多,但也導致了擴充套件庫 碎片化 的問題,例如操作樹莓派的gpio埠,gpio的編號便存在三種不同的方式。插座編號方式 編號側重p1插座側,從上到下,從左到右。正如圖3的header一欄。bcm2835編號方式 編號側重cpu暫存器,根據bcm2835的gpio暫存器編號...

Linux學習 樹莓派gpio控制

編寫使用者程式實現對raspberry pi的gpio口輸出高 低電平,讓接在gpio口上的發光二極體閃爍。熟悉linux系統裝置驅動程式框架 wiringpi 是應用於樹莓派平台的 gpio 控制庫函式,wiringpi 遵守 gun lv3。wiringpi 使用 c 或者 c 開發並且可以被其...

樹莓派養成之路 GPIO控制

看了網上多數都是正極直接級vcc,然後控制物理介面11的輸出。但問題在於初始化11介面後led燈就常亮,所以我直接使用11,13兩個口。看下我的接法 我大部分參考樹莓派開發系列教程9 樹莓派gpio控制 幫助了我很多,但也給我埋了個坑。程式初始化11介面為輸出模式,程式退出後沒有復位。導致程式下次執...