• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sterowanie Led WS2812B zmiana efektu przyciskiem bez opóźnienia
#3
Niestety nie mam jeszcze takiej wiedzy,  kombinowałem w biblioteczce i udało mi się znaleźć i pozmieniać i uzyskałem efekt, który chciałem tylko nie wiem jak zmienić żeby po podłączeniu arduino od razu ledy się zapalały stopniowo, muszę wcisnąć dodatkowo guzik. Podpowiedziałbyś co trzeba usunąć, żeby po podłączeniu zasilania ledy sie zapały stopniowo bez wyzwalania guzikiem?


Kod:
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
#define BUTTON_PIN  2
#define PIXEL_PIN    6  // Digital IO pin connected to the NeoPixels.
#define PIXEL_COUNT 30  // Number of NeoPixels

// Declare our NeoPixel strip object:
Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);
boolean oldState = HIGH;
int    mode    = 0;    // Currently-active animation mode, 0-9

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  strip.begin(); // Initialize NeoPixel strip object (REQUIRED)
  strip.show();  // Initialize all pixels to 'off'
}

void loop() {
  // Get current button state.
  boolean newState = digitalRead(BUTTON_PIN);

  // Check if state changed from high to low (button press).
  if((newState == LOW) && (oldState == HIGH)) {
    // Short delay to debounce button.
    delay(20);
    // Check if button is still low after debounce.
    newState = digitalRead(BUTTON_PIN);
    if(newState == LOW) {      // Yes, still low
      if(++mode > 1) mode = 0; // Advance to next mode, wrap around after #8
      switch(mode) {          // Start the new animation...
        case 0:
          colorWipe(strip.Color(  0,  0,  0), 50);    // Black/off
          break;
        case 1:
          colorWipe(strip.Color(255,  0,  0), 50);    // Red
          break;
   

      }
    }
  }

  // Set the last-read button state to the old state.
  oldState = newState;
}

void colorWipe(uint32_t color, int wait) {
  for(int i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, color);       
    strip.show();                         
    delay(1000);                         
  }
}
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Sterowanie Led WS2812B zmiana efektu przyciskiem bez opóźnienia - przez brendy - 19-07-2019, 14:19

Skocz do:


Przeglądający: 1 gości