Arduinoを使用して、アドレス指定可能なRGB LEDテープを制御したいです。
Arduino uno
LED 一段目31 二段目30 三段目28 合計89
LEDテープは、すべて1本でつながっていますが三段になっています。
下のようなコートで、入力があると
全てのLEDがREDになり(10秒)
それから列ごとにカラーを変えてみたいです。
最後に入力が切れると LEDが緑に10秒点灯
※これができたら最高(^O^)
const int DIN_PIN = 7;
void setup(){
pinMode( DIN_PIN, INPUT );
Serial.begin( 9600 );
}
void loop(){
int value;
value = digitalRead( DIN_PIN ); Serial.println( value ); delay( 1000 );
}
入力
全てのLEDがRED点灯10秒
列ごとに緑や紫 onの間ずっと
入力offで緑に点灯10秒
わかる方がおりましたらお願いします。
追加
下のコードから 使えそうな部分を使いたいと思っても
上のコードに組み込めません。
All REDの命令だけも組み込めません。
#include <FastLED.h>
#include <EEPROM.h>
#define BUTTON 2
byte selectedEffect=0;
#define NUM_LEDS_PER_STRIP 90
#define LED_TYPE WS2812B
#define COLOR_ORDER RGB
#define BRIGHTNESS 90
CRGB leds[NUM_LEDS_PER_STRIP];
void setup()
{
FastLED.setMaxPowerInVoltsAndMilliamps(5,1000);
FastLED.addLeds<LED_TYPE, 4>(leds, NUM_LEDS_PER_STRIP);
FastLED.addLeds<LED_TYPE, 7>(leds, NUM_LEDS_PER_STRIP);
FastLED.setBrightness(BRIGHTNESS);
digitalWrite (BUTTON, HIGH); // internal pull-up resistor
attachInterrupt (digitalPinToInterrupt (BUTTON), changeEffect, CHANGE); // pressed
}
void loop()
{
EEPROM.get(0,selectedEffect);
if(selectedEffect>5)
{
selectedEffect=0;
EEPROM.put(0,0);
}
switch(selectedEffect)
{
case 1 :
{
black();
break;
}
case 2 :
{
red();
break;
}
case 3 :
{
blue();
break;
}
case 4 :
{
green();
break;
}
case 5 :
{
purple();
break;
}
case 6 :
{
gold();
break;
}
}
}
void changeEffect()
{
if (digitalRead (BUTTON) == HIGH)
{
selectedEffect++;
EEPROM.put(0, selectedEffect);
asm volatile (" jmp 0");
}
}
void red()
{
for(int i=0;i<NUM_LEDS_PER_STRIP;i++)
{
leds[i].setRGB(255,0,0);
FastLED.show();
}
}
void blue()
{
for(int i=0;i<NUM_LEDS_PER_STRIP;i++)
{
leds[i].setRGB(0,0,255);
FastLED.show();
}
}
void green()
{
for(int i=0;i<NUM_LEDS_PER_STRIP;i++)
{
leds[i].setRGB(0,255,0);
FastLED.show();
}
}
void purple()
{
for(int i=0;i<NUM_LEDS_PER_STRIP;i++)
{
leds[i].setRGB(191,62,255);
FastLED.show();
}
}
void black()
{
leds[NUM_LEDS_PER_STRIP] = CRGB(0, 0, 0);
FastLED.show();
}
void gold()
{
for(int i=0;i<NUM_LEDS_PER_STRIP;i++)
{
leds[i].setRGB(255,215,0);
FastLED.show();
}
}