8pino リベンジ。の続き
前回までのお話
回路までは組めたはずだが…
早速光らせます。 成功!
それだけだと、つまらないので
Neopixelのコードを1から書いて見ることにしました。
結果、こんな感じ。 色と明るさを制御してみました。
コードはこちら。
#include <Adafruit_NeoPixel.h> #ifdef __AVR_ATtiny85__ // Trinket, Gemma, etc. #include <avr/power.h> #endif #define NEOPIXEL_IN_PIN 0 #define NUM_OF_PIXELS 16 #define BRIGHTNESS_MAX 30 #define DELAY_TIME_FOR_GRADATION 70 Adafruit_NeoPixel pixels = Adafruit_NeoPixel( NUM_OF_PIXELS, NEOPIXEL_IN_PIN ); void setup() { pinMode( NEOPIXEL_IN_PIN, OUTPUT ); #ifdef __AVR_ATtiny85__ // Trinket, Gemma, etc. if( F_CPU == 16000000 ) clock_prescale_set( clock_div_1 ); #endif pixels.begin(); pixels.show(); // Initialize all pixels to "off" } void loop() { uint8_t i = 0; for( i = 0; i < NUM_OF_PIXELS; i++ ){ if( i < ( NUM_OF_PIXELS / 4 ) ){ pixels.setPixelColor(i, 255, 0, 0); }else if( i < ( ( 2 * NUM_OF_PIXELS ) / 4 ) ){ pixels.setPixelColor(i, 0, 255, 0); }else if( i < ( ( 3 * NUM_OF_PIXELS ) / 4 ) ){ pixels.setPixelColor(i, 0, 0, 255); }else if( i < NUM_OF_PIXELS ){ pixels.setPixelColor(i, 255, 255, 255); } } for( i = 1; i < BRIGHTNESS_MAX; i++ ){ pixels.setBrightness(i); // Reflect some settings and light them. pixels.show(); delay( DELAY_TIME_FOR_GRADATION ); } }
わかったこと
- 明るさは0-255まで代入可能だが、50以上は眩しすぎる
- 明るさを一度0にしてしまうと、以後、値を設定してもうんすん
- 明るさは個々のLEDには設定できない
- センスがないと、光っても全然かっこ良くない
とても気になること
この回路にしてから、手持ちのモバイルバッテリーからの給電では、Neopixelが光らなくなってしまいました。
(8pinoは動作している)
PCからの給電だと、LEDも光るのですが…
たぶん、僕の回路が悪いのだろうなぁ。
とりあえず無事、リベンジは果たせたので、満足です。