PICO搭載のLEDを点滅などさせてプログラム動作状況を示すことをしてましたが、RGB-LEDでフルカラー表示できればエエやん!ということでやってみました。
■参考出典
LED基本ガイド
https://www.marutsu.co.jp/pc/static/large_order/led?srsltid=AfmBOoqTeo5te2BY9r-35ZK6LTPvJewmYiVbslYuKriuJBdHfDbeU6g-
これ基本!マルツさんありがとうございます。勉強になりました。
■RGB-LED
メーカー:Optosupply
形式:RGBフルカラーLED 5mm OSTA5131A カソードコモン
購入先:秋月電子
カソードコモンです。
↑これ出典忘れました。
Optosuppyのデータシートから抜粋
緑が強く、赤が弱いようです。
出力のバランスどりをしないと色の感じが合わないですね。
でもこれはLEDとしては当たり前のことのようです。
■結線
GPIOから1KΩを経てLEDのアノードへ入り、コモンからGNDへ至ります。
写真にはOLEDや端子台も写ってますが、今回は使いません。
↑PICO専用のICソケットを購入しました。
表示がわかりやすいし、PICOのピン保護にもなります。
少し高いですが初心者にはグーだと思いました。
また、ブレッドボードにLEDを直接挿すと安定しにくいのでソケットピンで結線。
コモン端子(今回はカソード)は内部電極が大きいので、横からみてピン特定。
■コード
検索すると多々参考コードがあります。
クラスライブラリにする場合と直接PWM動作させる場合の概ね2通りのようです。
ライブラリ使うほうがメインルーチンが簡潔になりますが、
それはそれでブラックボックスでもありますから、
今回は動作の勉強を兼ねたく、PWMを直接記述しました。
結果的にコードはくどい、長い表現で無駄が多々ありますが、
思い出しやすいようにしました。
#led_pwm_test,py これをPICOのmain.pyとして書き込むだけ
#https://randomnerdtutorials.com/raspberry-pi-pico-pwm-micropython/
#インポート:micropythonの標準ライブラリのみ
from time import sleep
from machine import Pin , PWM
#3行程度で書けそうな内容をあえて分解記述
#set num on GPIO
GP02 = 2
GP03 = 3
GP04 = 4
#setting instance of pin for led
pin_red = machine.Pin( GP02 )
pin_green = machine.Pin( GP04 )
pin_blue = machine.Pin( GP03 )
#setting instance of pwm at each led
pwm_red = PWM ( pin_red )
pwm_green = PWM ( pin_green )
pwm_blue = PWM ( pin_blue )
#setting frequency of pwm at each led
freq_pwm = 5000
pwm_red.freq(freq_pwm)
pwm_green.freq(freq_pwm)
pwm_blue.freq(freq_pwm)
#main routine
try:
while True:
pwm_red.duty_u16(30000)
pwm_green.duty_u16(9000)
pwm_blue.duty_u16(12000)
# RGBそれぞれこの値ぐらいに差を設けないと同じ明るさに見えない
sleep(1.000)
pwm_red.duty_u16(0)
pwm_green.duty_u16(0)
pwm_blue.duty_u16(0)
sleep(1.000)
except KeyboardInterrupt:
print("Keyboard interrupt")
#消灯とPWM設定解消
pwm_red.duty_u16(0)
pwm_green.duty_u16(0)
pwm_blue.duty_u16(0)
pwm_red.deinit()
pwm_green.deinit()
pwm_blue.deinit()
■結果
点灯しました。(当然)
が、横からですと色がわかりません。
データシートを見ますと・・・
あ、砲弾型LEDは光度曲線がすごい狭角ですね。
なんとなく色が混じって白っぽく写ってます・・・
が、目視ですとRGB個々のLEDが分離して光っています。
白い拡散樹脂板などで混ぜると多少らしく見えますが、、、
この狭角型だとフルカラーを色々表現するのはしんどいです。
RGBとその単純な組み合わせぐらいなら使えそうです。
■RGB-LED(フラックス型)
ちなみにOptosupplyの↓このLEDもあるのですが、、、
オプトサプライ角型フルカラーLED(RGBLED) OSTBMAZ2C1D アノードコモン
こちらはアノードコモン、青が一番弱いようです。
ただし小さい!(目的がそうだから)
単体ではピンが重なってブレッドボードに挿せる場所がありません。
別途準備したユニバーサル基板にはんだ付けしてピンを立てたのですが、
基板が独立ランドだけなので、結線も小さくてものすごくやっかいでした。しかも結局のところ点灯しませんでした。
テスターでピン接続を当たっていたら赤だけ光る・・・他は光らず。。。
熱で駄目にしたのかもしれません。
これ結構たくさん買っちゃったんですけど、しばらく放置します。