0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NeoPixel制御ボードのサンプルプログラム②

Posted at
  • 商品概要

RP2040マイコンを使って、NeoPixelを制御して楽しもうというコンセプトです。
右のコネクタは、電池をつないでパソコンから離れても動くようにしています。
左のジャックから音声信号を入力してADコンバータに入力できるようになっています。
ボタンが1つ or 2つ搭載しているので、外部入力または切り替えなどで使えます。

  • プログラム環境

ArduinoIDE バージョン:2.3.2
Adafruit NeoPixel Library 1.12.2(2024.8.1時点の最新版は1.12.3でした)

  • ハードウェアの主な仕様

 ①マイコン:PR2040-ZERO(RaspberryPiPico系)
 ②NeoPixel接続ピン  GPI08(R1でショート)
 ③プッシュスイッチ1:GPI07
 ④プッシュスイッチ2:GPI06(2個搭載しているボードのみ)
 ⑤音声入力:GP26

  • メインプログラム(ArduinoIDEのスケッチ)

シリアルモニタから数字を送信して、LEDを光らせるサンプルプログラムです。

// シリアルで数字を1から6を送ると
// LEDをイコライザのように光らすプログラム
// 1から3は、緑色、4と5は黄色、6は赤色で光らす


#include <Adafruit_NeoPixel.h>

#define LED_PIN    8    // NeoPixel信号接続端子
#define LED_COUNT  6    // LEDの数を指定 6個

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  Serial.begin(9600); // シリアル通信を開始
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
  strip.setBrightness(24);  // 明るさ倍率設定 (RGB設定値 * 明るさ倍率、最大255)  
}

void loop() {
  if (Serial.available() > 0) { // シリアルポートからデータが受信されたかどうかを確認
    int data = Serial.parseInt(); // 受信したデータを整数として読み取る
   
    strip.clear(); // すべてのLEDを消す
   
    // データが1から6の場合、指定された数のLEDを点灯
    if (data >= 1 && data <= 6) {
      for (int i = 0; i < data; i++) {
        // 各LEDを点灯させる
        if (i < 3) {
          strip.setPixelColor( i, 0, 255, 0); // LED1からLED3は緑色
        } else if (i < 5) {
          strip.setPixelColor( i, 255, 255, 0); // LED4からLED5は黄色
        } else {
          strip.setPixelColor( i, 255, 0, 0); // LED6は赤色
        }
      }
    }
   
    strip.show(); // LEDを更新
    delay(100); // 20m秒待機
  }
}
  • このプログラムを作成した時の考え方。

シリアルモニタから数字を入力して任意のLEDを光らせたい。
シリアルモニタから数字1から6の値を一つを送ると0.5秒点灯して消灯します。

やりたかったのは、音声入力をGP26に1.65V基準で入力できるボードにしています。
GPIO26は、ADコンバータにつながっており
ADコンバータで得られた値をFFT(高速フーリエ変換)してイコライザみたいに光らせて
遊んでみたかったので、まずは数値を送って表示の原型として試行したプログラムです。

  • シリアルモニタのイメージ

4を送信したら、NeoPixelが4つ点灯します。

image.png

1722512886276.jpg

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?