株式会社ジーテック

制御機器を小ロット多品種で設計製作

マイコン内臓LED(WS2822S)を使ってみる

フルカラーLEDはリアルタイムに色々表現できるのでとても楽しいLEDです。しかしここ数年、マイコンが搭載されてさらに楽しいLEDが出回ってきました。その一つがWE2822で、舞台向けなどの照明機器で使用されているDMX512という規格に似たフルカラーLEDのライブラリを作ったので紹介します。

使用機器

使用機器は下記のとおり。他、パソコンや電源、PICKIT2も当然ながら必要です。電源は写真の様に5Vラインに直接5Vを供給して下さい。レギュレータを通すと電力不足で動きがおかしくなります。

  • マイコンボード(PIC16F1947搭載)…ZEATEC co.,ltd. ZT-PIC16F194701(5V仕様)
  • スイッチサイエンス WS2822SシリアルLEDスティックモジュール2本
    又はWS2822Sを20個接続したもの
WS2822Sについて

このLEDは上でも説明したとおりDMX512という規格に基づいて制御します。しかし、通常DMXの機器は機器のディップスイッチなどによってアドレス設定しますが、この場合アドレス設定もシリアル信号によって行います。
先にアドレス設定の信号を送信して再起動後、カラーデータを送信します。ちなみにアドレスの設定は何度も書き換えできるようです。下のライブラリでは起動後、USARTポートから「mode,1」と入力してアドレス設定モードにし、1秒程度接続します。後に「mode,2」と入力するかマイコンを再起動すればカラーデータが送信されます。

アドレス設定信号プロトコル

アドレス信号はADRIに入力します。そしてADROから出てきた信号を次のLEDのADRIに接続します。その時DAIは何でも良いようですが、念のためライブラリではHIとしています。プロトコル内容については下記資料で何とか理解できそうですが、アドレスの割り当て順については少々理解しにくかったので注意が必要です。
1個のLEDには3つのアドレスが必要?なため、一つ目を1と設定すると次は4となります。順に3を足した数値となり、1、4、7,10、13という感じになります。

カラーデータ信号プロトコル

カラーデータはDAIから入力し、それぞれのLEDにも並列に接続します。各色のデータ(3バイト)を並べて送るだけで制御できます。

接続

接続は下記のとおりです。アドレスの設定が出来れば3本でも出来ますが、トラブルが起きた際の事を考えるとアドレスも配線しておいたほうが無難です。
電源は通常のピンから供給するとレギュレータの許容値を超えるようですので、PORT1もしくはPORT2の5Vラインに入力して下さい。

WS2822S用ライブラリ WS2822S.zip

WS2822Sデータシート WS2822S.pdf

プロジェクトファイルも含めたサンプル ZT-PIC16F194701_WS2822S.zip

ウィンカーも作ってみました 16f1947_ws2822_turnsignal.zip

開発環境:MPLAB_IDE_8_92 + CCS-C PCMコンパイラVer.4.132

©ZEATEC co.,ltd.