akasakaのアイコン画像
akasaka 2025年12月22日作成 (2025年12月25日更新) © CC BY-NC-SA 4+
製作品 製作品 Lチカ Lチカ 閲覧数 146
akasaka 2025年12月22日作成 (2025年12月25日更新) © CC BY-NC-SA 4+ 製作品 製作品 Lチカ Lチカ 閲覧数 146

電線2本だけでRGB LEDの制御

電線2本だけでRGB LEDの制御

はじめに

最近は昔々のTapTapRevengeっていうモバイル音ゲーのアーケード筐体を作ってみたくなりました。

このゲームのターゲットは、ノーツを押すタイミングにより色が変わる仕様です。

なお、ターゲットとしてよく他の音ゲーに使われている100φドームボタンを使用したくて、電球はウェッジタイプなのでRGBLEDを対応できません。手元にあるもので済ませたいしOBSA-LHS7Fにアップグレードするのもちょっとバジェット超過です…

自作RGB電球

WS2812をベースにすれば、実はワンワイヤーで制御が可能です!(実際の1Wireではないけど・・)

回路図はこちらです:(CADは直接基板データを作りましたので手書きで失礼致します)

キャプションを入力できます

+線はデータ入力と電源入力して使用しています。
ロジック1になってる間はLEDがデータ入力から給電されていてコンデンサーが充電されます。
ロジック0になってる間はLEDがコンデンサーから給電します。
そしてコンデンサーに貯まった電気がデータ通信にならないようにダイオードで分けています。

ということで、データバスの電流キャパが十分であれば、+に普通のWS2812制御信号を通信させたら動作しますね。
データ通信しない間はデータバスを1にすべきだけが注意しないといけません。

なお容量はリフレッシュレート次第にコンデンサーの容量を変える必要になるかもしれません。

今回の動作確認に使用したソースコード:(あんまりよくはない)

#include <Arduino.h> #include <Adafruit_NeoPixel.h> #define LED_PIN 10 #define BTN_PIN 7 Adafruit_NeoPixel pix = Adafruit_NeoPixel(1, LED_PIN, NEO_GRB | NEO_KHZ800); void doShow() { digitalWrite(LED_PIN, LOW); pix.show(); digitalWrite(LED_PIN, HIGH); } void setup() { pix.begin(); pix.setBrightness(255); pinMode(BTN_PIN, INPUT_PULLUP); } void loop() { pix.setPixelColor(0, 255, 255, 255); doShow(); while (!digitalRead(BTN_PIN)) delay(10); while (digitalRead(BTN_PIN)) delay(10); pix.setPixelColor(0, 255, 0, 0); doShow(); while (!digitalRead(BTN_PIN)) delay(10); while (digitalRead(BTN_PIN)) delay(10); pix.setPixelColor(0, 0, 255, 0); doShow(); while (!digitalRead(BTN_PIN)) delay(10); while (digitalRead(BTN_PIN)) delay(10); pix.setPixelColor(0, 0, 0, 255); doShow(); while (!digitalRead(BTN_PIN)) delay(10); while (digitalRead(BTN_PIN)) delay(10); }

Adafruit_NeoPixelライブラリーは必須

次は適当なサイズで基板データを作成しました:Github

キャプションを入力できます

キャプションを入力できます

キャプションを入力できます

そして二つの基板を合わせて先ほどの回路を電球(っぽい)形に実装しました:

キャプションを入力できます

キャプションを入力できます

動かしてみます

ついにArduinoを以下のように接続します

Arduino OBSA-LHSXF
スイッチ部
5V 5V
GND GND
7 OUT
電球部
10 +
GND -

先ほどのソースをアップロードして・・・

クリックして再生

ちゃんと色を変えて光ります!

じゃあこれから本番のIO基板の開発に進むしかないですね…

akasakaのアイコン画像
初めまして。 札幌在中の変な外国人、DJあかさか でございます。 ホビーとしていろいろの電子機器をいじってたり作ってたりするのでたまに記事も書きたいだとおもいます。 現実ガジェット研究所(現実LABS)の主メンバーです → www.genjit.su よろしくお願いいたしますー
ログインしてコメントを投稿する