RGB LED 問題解決編
ぴこぴこ
RGB LED が点滅するのは
いいのですが
予期せぬ 異常終了したとき
簡単に 復旧しない
原因と対策について
【chatGPT】様と
あれや これや
あ~でも こ~でも
と
お話をした結果
RGBの作動プログラムに
RapsberryPi PICO W
の
GPIO を PWMモードで
使用するとき
GPIOピンに 対して
「初期化」することで
問題解決!
なぜ 「初期化」に
すぐ 飛びつかなかったのか?
【chatGPT】様いわく
GPIO PWMで利用する と 宣言するとき
初期化が おこなわれているので
別途 初期化 不要・・・
が 今回のように
異常終了の場合
通常の「初期化」では対処しきれない
ことが 「なんとなく判明」
ゆえに
紆余曲折週十普段魑魅魍魎
の末
プログラムを改修
これにて
解決! むふふ♪
# ==== 改修プログラム by 【chatGPT】様
from machine import Pin, PWM
import time
# GPIOピン番号の設定
RED_PIN = 15
GREEN_PIN = 14
BLUE_PIN = 13
# PWMオブジェクトの生成
red = PWM(Pin(RED_PIN))
green = PWM(Pin(GREEN_PIN))
blue = PWM(Pin(BLUE_PIN))
# 各PWMの周波数を明示的に設定(1000Hz)
red.freq(1000)
green.freq(1000)
blue.freq(1000)
# デューティサイクル設定関数
def set_color(r, g, b):
red.duty_u16(r)
green.duty_u16(g)
blue.duty_u16(b)
# メインループ
while True:
# 赤点灯
set_color(65535, 0, 0)
time.sleep(1)
# 緑点灯
set_color(0, 65535, 0)
time.sleep(1)
# 青点灯
set_color(0, 0, 65535)
time.sleep(1)
# 白点灯
set_color(65535, 65535, 65535)
time.sleep(1)
# 消灯
set_color(0, 0, 0)
time.sleep(1)
# ==== おわり