第31回 マイコン内蔵LED回路製作

このシリーズ記事もいよいよ終盤になりました。今回からNode-REDでマイコン内蔵フルカラーLEDの制御をします。

目次

なんでまたフルカラーLED?

今回の記事からマイコン内蔵フルカラーLEDの回路を製作します。

って、このシリーズの最初の方でフルカラーLEDの回路を作りましたよね。なんでまた?という疑問も出てくるかと思いますので、最初にこの回路を製作する背景を説明したいと思います。

今回使用するフルカラーLEDは、製品名に「マイコン内蔵」と付いています。

この「マイコン内蔵フルカラーLED」には次の特徴があります。

  1. 1本の信号線のみで複数のLEDをそれぞれ独立に制御できる
  2. 世の中の「マイコン内蔵フルカラーLED」は(ほぼ)すべて同じ方法で制御できる

言葉だけではわかりづらいと思いますので、少し詳しく説明します。

1本の信号線で複数のLEDを個別に制御できる

最初に製作したフルカラーLEDの回路は、以下のように3本のGPIOピンを使用して3本の信号線で制御しました。

フルカラーLED制御1

これはこれでいいとして、フルカラーLEDを追加したい場合はちょっと困ったことが出てきます。

ラズベリーパイのGPIOピンは限られているので、当然ながら追加できるフルカラーLEDには上限があります。さらに配線の数も多くなり回路製作も大変になってしまいます。何かのイルミネーションを作りたい場合、LEDが5個とか10個というのはちょっと寂しいですよね。

一方で、マイコン内蔵フルカラーLEDの場合、以下のように1本の信号線で制御できます。この信号線は以下のように数珠つなぎできるようになっています。

フルカラーLED制御2

制御信号は1本ですが、以下のように特定の位置のLEDを、指定した色と明るさで光らせることができます。ちょっと不思議ですよね。

フルカラーLED制御3

このマイコン内蔵フルカラーLEDが使えるようになると、何かのイルミネーションを作りたい場合など、いろいろと使える場面があると思います。

世の中の「マイコン内蔵フルカラーLED」は(ほぼ)すべて同じ方法で制御できる

フルカラーLEDにマイコンが内蔵されているタイプの製品は、非常にたくさんの種類があります。

「マイコン内蔵フルカラーLED」というと一般製品名のような気がしますが、実は世の中のほとんどが同じタイプの製品なんです。つまり、どの製品も同じ方法で制御ができるようになっています。

ここで部品名について少し深掘りしておきます。

このような制御を実現してるのは「WS2811」というフルカラーLED専用のコントローラ(制御モジュール)です。このシリーズ記事で使用するマイコン内蔵フルカラーLEDは、以下のように「WS2811」コントローラと、3色(赤・緑・青)のLEDが一つのパッケージに入っています。

WS2812B-1

また「WS2812B」という、WS2811相当のコントローラと3色のLEDが5mm四方のパッケージにまとめられている製品もあります。

WS2812B-2

さらに、アメリカのAdafruit Industries社が、「WS2812B」をあらかじめいろいろな形状にまとめた「NeoPixel」というシリーズ製品を販売しています。

Adafruit Industries社 NeoPixelシリーズ製品
https://www.adafruit.com/category/168(別ウィンドウで開きます)

WS2812Bを使用した製品には、テープ型のものもあります。

WS2812B-3

この製品は、テープ状ですので曲げることができて、さらに必要な個数分切断して使用できます。1リール買っておくと必要な分ハサミで切って使えるので便利です。

WS2812B-4

Amazonや楽天、Yahooショッピングなどで、「ws2812b」や「neopixel」で検索すると非常に多くの製品が出てきます。ご興味があればちょっと調べてみてください。


ということで、この「マイコン内蔵フルカラーLED」の回路構成と制御方法を理解しておくと、用途に応じた「WS2812B」や「NeoPixel」製品を使えるようになりますので、ちょっと無理矢理という感じですがシリーズ記事に採用してみました。

それではさっそく始めていきましょう!

一般的なWS2811/WS2812Bの回路

WS2811/WS2812B使った製品は、以下のように4個のピン(端子)があります。

WS2812B-5

この4ピンは以下のような役割になっています。ピン名は製品によって若干差がありますが、ほとんどの製品が以下のピン名で表記されています。

ピン名 使い方
VDD 電源のプラス側に接続します。必要な電源電圧は製品によって異なります。
GND
VSS
電源のマイナス側に接続します。
DIN
DI
制御信号を入力するピンです。「Data In」の略です。
DOUT
DO
制御信号を出力するピンです。「Data Out」の略です。
数珠つなぎにする場合、このピンを次のLEDの「DINまたはDI」ピンに接続します。

複数のLEDを接続する場合、以下のように接続します。

WS2812B-6

各LEDのVDDとGNDを電源に接続して、制御信号線を数珠つなぎになるように接続するだけでOKです。

なお、メーカーから回路が指定されている場合もありますので、そのような場合はメーカー推奨回路を使用するようにしてください。

WS2811/WS2812Bの仕組み

回路を組み立てる前に、WS2811/WS2812Bがどのように動作するのか確認しておきます。

例として、ラズベリーパイのGPIOピンにWS2811/WS2812Bを3個接続した場合を例に説明します。

WS2812B-7

上のように3個接続した場合、ラズベリーパイのGPIOピンから、3個分の発光色のデータを送ります。1個分の発光色データはRGBそれぞれ1バイトの3バイトです。3個分の発光色データは9バイトになります。

1個目のLEDは、最初のデータ(データ1)を自分用に受け取り、そのデータの色で発光します。残りのデータは次のLEDに渡します。

2個目のLEDは同様に、自分にとって最初のデータ(データ2)を自分用に受け取り、そのデータの色で発光します。残りのデータは次のLEDに渡します。

3個目のLEDも同様に、自分にとって最初のデータ(データ3)を自分用に受け取り、そのデータの色で発光します。ただ、残りのデータはありませんので、これで処理は終わりになります。

なお、3個のLEDは次のデータを受け取るまで、受け取ったデータを保持して発光を続けます。

このように、ラズベリーパイのGPIOピンからLEDの個数分の発光色データを送れば、それぞれのLEDを好きな色で発光させることができます。

なお、3個目だけ変えたい場合でも、3個分のデータを送る必要があります。その場合は、1個目と2個目のデータは前回送ったデータと同じにする必要があります。

マイコン内蔵フルカラーLED回路

それでは回路を製作していきましょう。

今回はマイコン内蔵フルカラーLEDを2個接続する回路を作成します。せっかく数珠つなぎで何個も接続できるのに2個はちょっと寂しい気もしますが…

とはいっても、制御方法は3個以上でも今回の制御と同じ要領になりますので、今回の2個の回路で制御のポイントを理解するようにしてみてください。

実は、今回使用する「PL9823」はメーカーから回路の指定があるのですが、その目的がよくわからなかったためいろいろ調べたところ、すでに調べられている方がいました。結果、メーカーの指定回路にある部品(抵抗)は必要ないようです。

http://play-arduino.seesaa.net/article/439256124.html

そこで、今回製作する回路はこの情報を参考にさせていただいて、最初に説明した一般的な接続にしました。

なお、今回使用するマイコン内蔵フルカラーLEDのピンは以下のようになっています。

ブレッドボード組み立て1

なお、この制御に使用できるラズベリーパイのGPIOピンは限られています。今回は物理ピン番号12番を使用することにしました。また、このLEDの電源はラズベリーパイGPIOピンの5Vピンを使用することにします。

ラズベリーパイのGPIOピンとの接続は以下のようになります。

ブレッドボード組み立て2

回路製作

ブレッドボードは残りのスペースはそれほどありませんので、以下のように配置することにしました。

ブレッドボード組み立て3

動作確認

動作確認は、次回の記事で実際にフローを作成して確認します。

なお今回使用する製品は、電源を入れるとデフォルトで青色に光るようになっています。そのため、電源が問題なく接続されているか確認できます。

動作確認というわけでもありませんが、ラズベリーパイの電源を入れるとLEDが青色に光はずですので、問題なく点灯するか確認してみてください。

更新履歴

日付 内容
2022.8.23 新規投稿
通知の設定
通知タイミング
guest
0 コメント
新しい準
古い順 一番投票が多い
本文中にフィードバック
全てのコメントを見る
目次