NeoPixel Ringを使ってみる

NeoPixel Ring – 16連フルカラーシリアルLEDを使ってみる

ゴーグルに埋め込んだり腕時計を作った人もいるようです。バッテリーの持ち時間が気になりますが、面白そうです。

使用機器

使用機器は下記のとおり。他、パソコンや電源、PICKIT2も当然ながら必要です。

  • フルカラーLEDモジュール NeoPixel Ring – 16連フルカラーシリアルLED
    スイッチサイエンス adafruit
  • マイコンボード(PIC18F26k22搭載) ZEATEC co.,ltd. ZT-PIC18F26k2201(5V仕様)

接続

接続は下記のとおりです。LEDモジュールには加工してQIコネクタをつけています。

ちょっと解説

基板上には16個のLEDが配置されていて信号の内容を簡単に説明すると、1とする信号と0とする信号を8bit x 3色分の24bitの信号を16個分並べて送信します。1とする信号は0.8μSecのHiと0.45μSecのLowの組み合わせの信号で、0とする信号は0.4μSecのHiと0.85μSecのLowの組み合わせの信号となります。
先にリセット信号を出したほうがいいみたいで、50μSecのLowを出してからそれぞれの信号を出力します。24bit単位でfor-nextで回しているとスープする際に少々時間が空いてしまいますが、そこはlowにしておいたほうが良いみたいです。さらに16個分のデータを送信後はHiにしておいたほうが良いみたいです。あとデータ送信の1回目は取りこぼしが発生しやすいのか意図しない表示になるため、スタート時に1回データ送信を行っています。
プログラムやメモリーにはまだ余裕があるので変数を触ればもっと多くのLEDや長いパターンも作れます。

  プロジェクトファイルも含めたサンプル 18f26k22_ws2812b  
  LEDのデータシート WS2812B  
  開発環境:MPLAB_IDE_8_92 + CCS-C PCMコンパイラVer.4.132