前提・実現したいこと
一本のテープLEDを複数のタクトスイッチでそれぞれ違う光らせ方をやりたい
発生している問題・エラーメッセージ
一つのタクトスイッチを何回も押してそれぞれ違う光らせ方はできますが、複数のタクトスイッチにそれぞれの光らせ方を入れるのができません。
使っているテープLEDはWS2812B 一本です。
該当のソースコード__イタリックテキスト__
ここに問題に対して試したことを記載してください。
スケッチ例から光り方は持ってきました。
光った後にテープを全部消すやり方が分からず、
無理やりつけたようなものがついています。すいません。
Arduino
const int switchPin = 2;
const int switchpinpin=3;
#define NUM_LEDS 144
#include "FastLED.h"
#define DATA_PIN 6
#define CLOCK_PIN 13
CRGB leds[NUM_LEDS];
unsigned long time;
//
void setup () {
pinMode(switchPin, INPUT);
pinMode(switchpinpin,INPUT);
Serial.begin(57600);
Serial.println("resetting");
LEDS.addLeds<WS2812,DATA_PIN,RGB>(leds,NUM_LEDS);
LEDS.setBrightness(100);
}
void fadeall() { for(int i = 0; i < NUM_LEDS; i++) { leds[i].nscale8(250); } }
//
void loop () {
if (HIGH, switchPin) {
static uint8_t hue = 0;
Serial.print("x");
for(int i = 0; i < NUM_LEDS; i++) {
leds[i] = CHSV(hue++, 255, 255);
FastLED.show();
fadeall();
delay(10);
}
Serial.print("x");
for(int i = (NUM_LEDS)-1; i >= 0; i--) {
leds[i] = CHSV(hue++, 255, 255);
FastLED.show();
fadeall();
delay(10);
}
time = micros(); Serial.println(time); delay(1); // 1秒おきに送信 for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CRGB( 0, 0, 0); FastLED.show(); delay(1); }
}
if (HIGH,switchpinpin) {
static uint8_t hue = 0;
Serial.print("x");
for(int i = 0; i < NUM_LEDS; i++) {
leds[i] = CHSV(hue++, 255, 255);
FastLED.show();
fadeall();
delay(100);
}
for(int i = (NUM_LEDS)-1; i >= 0; i--) {
leds[i] = CHSV(hue++, 255, 255);
FastLED.show();
fadeall();
delay(100);
}
time = micros(); Serial.println(time); delay(1); // 1秒おきに送信 for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CRGB( 0, 0, 0); FastLED.show(); delay(1); }
}
}
### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー