iT邦幫忙

2026 iThome 鐵人賽

DAY 21
0

今日目標
今天我們要將PWM技術應用在RGB多彩LED上。
RGB多彩LED內部封裝了紅、綠、藍三種顏色的發光晶片。透過MicroPython的PWM脈衝寬度調變控制三原色各自的亮度比例,就能調配出各種不同色彩,做出類似呼吸燈的效果。

程式碼
import time
from machine import Pin,PWM

pwm_r=PWM(Pin(25),freq=1000)
pwm_g=PWM(Pin(26),freq=1000)
pwm_b=PWM(Pin(27),freq=1000)

def set_color(r,g,b):
duty_r=int((r/255.0)*1023)
duty_g=int((g/255.0)*1023)
duty_b=int((b/255.0)*1023)

pwm_r.duty(duty_r)
pwm_g.duty(duty_g)
pwm_b.duty(duty_b)

print("===RGB多彩氣氛燈控制系統啟動===")

COLORS={
"Red":(255,0,0),
"Green":(0,255,0),
"Blue":(0,0,255),
"Yellow":(255,255,0),
"Cyan":(0,255,255),
"Purple":(128,0,128),
"White":(255,255,255),
"OFF":(0,0,0)
}

for name,(r,g,b) in COLORS.items():
print(f"切換顏色:{name}")
set_color(r,g,b)
time.sleep(1)

print("進入彩虹漸變模式⋯")

def wheel(pos):
pos=pos%256
if pos<85:
return(255-pos3,pos3,0)
elif pos<170:
pos-=85
return(0,255-pos3,pos3)
else:
pos-=170
return(pos3,0,255-pos3)

step=0
while True:
r,g,b=wheel(step)
set_color(r,g,b)
step=(step+1)%256
time.sleep_ms(20)

心得
今天我們掌握了用PWM調和RGB三原色光線的精髓,透過簡短的演算法,就能讓傳統固定的燈光變化出如彩虹般流暢的視覺饗宴。RGB LED非常適合用於IoT設備的運作狀態指示(如藍燈代表連線中、綠燈代表正常、紅燈代表警報。


上一篇
使用 Servo 伺服馬達實現角度轉動
下一篇
情境 1:智慧倒車雷達——超音波測距 + 蜂鳴器不同頻率嗶嗶聲
系列文
無硬體也能玩物聯網!使用 Wokwi 模擬器與 MicroPython 打造 30 天 ESP32 實務 共 22 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言