Skocz do zawartości

Sterowanie diodami WS2812b przyciskami


janusz

Pomocna odpowiedź

Mam taki projekt : 2 linijki WS2812b RGB i sterowanie kierunkiem zapalania LED dwoma przyciskami. Przycisk 2 działa bez problemu tzn każde naciśnięcie powoduje bezzwłoczne uruchomienie programu, natomiast naciśnięcie przycisku 1 uruchamia program po około 1 sekundzie.

Kod wgrywałem do Arduino Leonardo i Nano i zawsze działanie jest takie same.

#include "FastLED.h"
#define NUM_LEDS_PER_STRIP 16
#define BUTTON1 8
#define BUTTON2 12
CRGB leds[NUM_LEDS_PER_STRIP];
void setup() {  
 pinMode(BUTTON1, INPUT_PULLUP); 
 pinMode(BUTTON2, INPUT_PULLUP);

 digitalWrite(BUTTON1, HIGH); 
 digitalWrite(BUTTON2, HIGH);

 FastLED.addLeds<NEOPIXEL, 6>(leds, NUM_LEDS_PER_STRIP);    // 16 ledow na pinie 6
 FastLED.addLeds<NEOPIXEL, 7>(leds, NUM_LEDS_PER_STRIP);    // 16 ledow na pinie 7

}

void loop() {

   if (digitalRead(BUTTON1) == LOW) {
   delay(10);
   for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) {
   leds[i] = CRGB::Blue;     // diody świecą na niebiesko
   FastLED.show();
   leds[i] = CRGB::Black;    // diody nie świecą    
  delay(30);
 }
 } else {
   for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) {
   leds[i] = CRGB::Black;    // diody nie świecą
   FastLED.show();
   leds[i] = CRGB::Black;    // diody nie świecą
   delay(10);

   if (digitalRead(BUTTON2) == LOW) {
   delay(10);
   for(int i = NUM_LEDS_PER_STRIP-1; i >= 0; i--) {
   leds[i] = CRGB::Green;    // diody świecą na zielono
   FastLED.show();
   leds[i] = CRGB::Black;    // diody nie świecą
   delay(30);
   }
   } else {
   for(int i = 0; i < NUM_LEDS_PER_STRIP-1; i++) {
   leds[i] = CRGB::Black;    // diody nie świecą
   FastLED.show();
   leds[i] = CRGB::Black;    // diody nie świecą
   delay(10);

 }
}
}
}
}
]
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.