kód který teď používám:
Kód: Vybrat vše
#include <FastLED.h>
#define BUTTON_PIN   2
#define LED_PIN     6
#define NUM_LEDS    120
CRGB leds[NUM_LEDS];
bool oldState = HIGH;
int showType = 0;
void setup() {
  
  FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
  pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop() {
  bool newState = digitalRead(BUTTON_PIN);  
  if (newState == LOW && oldState == HIGH) {
    delay(20);
    newState = digitalRead(BUTTON_PIN);
    if (newState == LOW) {
      showType++;
      if (showType > 7)
        showType=0;
      startShow(showType);
    }
  }
  oldState = newState;
}
void startShow(int i) {
  switch(i){
    case 0:  for (int i = 0; i <= 119; i++) {
    leds[i] = CRGB ( 255, 255, 255);
  }
  break;
    case 1: 
 for (int i = 0; i <= 49; i++) {
    leds[i] = CRGB ( 255, 255, 255);
  }
  for (int i = 50; i <= 69; i++) {
    leds[i] = CRGB ( 255, 0, 0);
  } 
 for (int i = 70; i <= 119; i++) {
    leds[i] = CRGB ( 255, 255, 255);
  }
 break;
      case 2: 
 for (int i = 0; i <= 49; i++) {
    leds[i] = CRGB ( 255, 255, 255);
  }
  for (int i = 50; i <= 69; i++) {
    leds[i] = CRGB ( 0, 255, 0);
  } 
 for (int i = 70; i <= 119; i++) {
    leds[i] = CRGB ( 255, 255, 255);
  }
 break;
          
      case 3: 
 for (int i = 0; i <= 49; i++) {
    leds[i] = CRGB ( 255, 255, 255);
  }
  for (int i = 50; i <= 69; i++) {
    leds[i] = CRGB ( 0, 0, 255);
  } 
 for (int i = 70; i <= 119; i++) {
    leds[i] = CRGB ( 255, 255, 255);
  }
 break;
      case 4: 
 for (int i = 0; i <= 49; i++) {
    leds[i] = CRGB ( 255, 0, 0);
  }
  for (int i = 50; i <= 69; i++) {
    leds[i] = CRGB ( 0, 255, 0);
  } 
 for (int i = 70; i <= 119; i++) {
    leds[i] = CRGB ( 255, 0, 0);
  }
break;
      case 5: 
 for (int i = 0; i <= 49; i++) {
    leds[i] = CRGB ( 0, 255, 0);
  }
  for (int i = 50; i <= 69; i++) {
    leds[i] = CRGB ( 255, 255, 255);
  } 
 for (int i = 70; i <= 119; i++) {
    leds[i] = CRGB ( 0, 255, 0);
  }
 break;
      case 6: 
 for (int i = 0; i <= 49; i++) {
    leds[i] = CRGB ( 0, 255, 0);
  }
  for (int i = 50; i <= 69; i++) {
    leds[i] = CRGB ( 255, 0, 255);
  } 
 for (int i = 70; i <= 119; i++) {
    leds[i] = CRGB ( 0, 255, 0);
  }
            break;
                    case 7: 
 for (int i = 0; i <= 49; i++) {
    leds[i] = CRGB ( 0, 255, 0);
  }
  for (int i = 50; i <= 69; i++) {
    leds[i] = CRGB ( 0, 255, 255);
  } 
 for (int i = 70; i <= 119; i++) {
    leds[i] = CRGB ( 0, 255, 0);
  }
            break;
  
  }
      FastLED.show();
}
}
 Přitom mi to funguje přesně tak jak jsem chtěl. Na vypínání světel používám spínač co odpojí plusový vodič z arduina k led pásku. Samotné arduino je pořád pod napětím z  baterie.
  Přitom mi to funguje přesně tak jak jsem chtěl. Na vypínání světel používám spínač co odpojí plusový vodič z arduina k led pásku. Samotné arduino je pořád pod napětím z  baterie.