• 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
Prosze o pomoc
#1
Star 
Witam, chciał bym prosić o pomoc ponieważ nie rozumiem tego a na internecie tych kursów jest mało na temat którego potrzebuje chce zrobić ledy które po włączeniu załadują się wężykiem kolorem przykładowo czerwonym gdy dojdą do końca ledów zmienią się na kolor biały i już tak zostaną do końca , tak jak pisałem uczę się tego cały czas a poradników jest mało na ten temat albo ja nie umiem szukać znalazłem poradnik który z biblioteki pomógł mi zrobić ładowanie paska na czerwono  

Cytat:// Simple demonstration on using an input device to trigger changes on your
// NeoPixels. Wire a momentary push button to connect from ground to a
// digital IO pin. When the button is pressed it will change to a new pixel
// animation. Initial state has all pixels off -- press the button once to
// start the first animation. As written, the button does not interrupt an
// animation in-progress, it works only when idle.

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif

// Digital IO pin connected to the button. This will be driven with a
// pull-up resistor so the switch pulls the pin to ground momentarily.
// On a high -> low transition the button press logic will execute.
#define BUTTON_PIN  2

#define PIXEL_PIN    6  // Digital IO pin connected to the NeoPixels.

#define PIXEL_COUNT 20  // Number of NeoPixels

// Declare our NeoPixel strip object:
Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);
// Argument 1 = Number of pixels in NeoPixel strip
// Argument 2 = Arduino pin number (most are valid)
// Argument 3 = Pixel type flags, add together as needed:
//  NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//  NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//  NEO_GRB    Pixels are wired for GRB bitstream (most NeoPixel products)
//  NEO_RGB    Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//  NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)

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 > 8) mode = 0; // Advance to next mode, wrap around after #8
      switch(mode) {          // Start the new animation...
        case 1:
          colorWipe(strip.Color(250,  0,  0), 50);    // Red
          break;
      }
    }
  }

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

// Fill strip pixels one after another with a color. Strip is NOT cleared
// first; anything there will be covered pixel by pixel. Pass in color
// (as a single 'packed' 32-bit value, which you can get by calling
// strip.Color(red, green, blue) as shown in the loop() function above),
// and a delay time (in milliseconds) between pixels.
void colorWipe(uint32_t color, int wait) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, color);        //  Set pixel's color (in RAM)
    strip.show();                          //  Update strip to match
    delay(wait);                          //  Pause for a moment
  }
}

// Theater-marquee-style chasing lights. Pass in a color (32-bit value,
// a la strip.Color(r,g,b) as mentioned above), and a delay time (in ms)
// between frames.
void theaterChase(uint32_t color, int wait) {
  for(int a=0; a<10; a++) {  // Repeat 10 times...
    for(int b=0; b<3; b++) { //  'b' counts from 0 to 2...
      strip.clear();        //  Set all pixels in RAM to 0 (off)
      // 'c' counts up from 'b' to end of strip in steps of 3...
      for(int c=b; c<strip.numPixels(); c += 3) {
        strip.setPixelColor(c, color); // Set pixel 'c' to value 'color'
      }
      strip.show(); // Update strip with new contents
      delay(wait);  // Pause for a moment
    }
  }
}

// Rainbow cycle along whole strip. Pass delay time (in ms) between frames.
void rainbow(int wait) {
  // Hue of first pixel runs 3 complete loops through the color wheel.
  // Color wheel has a range of 65536 but it's OK if we roll over, so
  // just count from 0 to 3*65536. Adding 256 to firstPixelHue each time
  // means we'll make 3*65536/256 = 768 passes through this outer loop:
  for(long firstPixelHue = 0; firstPixelHue < 3*65536; firstPixelHue += 256) {
    for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
      // Offset pixel hue by an amount to make one full revolution of the
      // color wheel (range of 65536) along the length of the strip
      // (strip.numPixels() steps):
      int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels());
      // strip.ColorHSV() can take 1 or 3 arguments: a hue (0 to 65535) or
      // optionally add saturation and value (brightness) (each 0 to 255).
      // Here we're using just the single-argument hue variant. The result
      // is passed through strip.gamma32() to provide 'truer' colors
      // before assigning to each pixel:
      strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(pixelHue)));
    }
    strip.show(); // Update strip with new contents
    delay(wait);  // Pause for a moment
  }
}

// Rainbow-enhanced theater marquee. Pass delay time (in ms) between frames.
void theaterChaseRainbow(int wait) {
  int firstPixelHue = 0;    // First pixel starts at red (hue 0)
  for(int a=0; a<30; a++) {  // Repeat 30 times...
    for(int b=0; b<3; b++) { //  'b' counts from 0 to 2...
      strip.clear();        //  Set all pixels in RAM to 0 (off)
      // 'c' counts up from 'b' to end of strip in increments of 3...
      for(int c=b; c<strip.numPixels(); c += 3) {
        // hue of pixel 'c' is offset by an amount to make one full
        // revolution of the color wheel (range 65536) along the length
        // of the strip (strip.numPixels() steps):
        int      hue  = firstPixelHue + c * 65536L / strip.numPixels();
        uint32_t color = strip.gamma32(strip.ColorHSV(hue)); // hue -> RGB
        strip.setPixelColor(c, color); // Set pixel 'c' to value 'color'
      }
      strip.show();                // Update strip with new contents
      delay(wait);                // Pause for a moment
      firstPixelHue += 65536 / 90; // One cycle of color wheel over 90 frames
    }
  }
}


gdy wgrałem to na arduino to ładuje mi super ledy na czerwono ale potrzebuje pomocy jak to przerobić aby po załadowaniu zmienił się na kolor biały już na stałe ?
bardzo proszę o pomoc lub chociaż nakierowanie ewentualnie do znalezienia poradnika który by mi to wytłumaczył Pozdrawiam.
 
Odpowiedź
#2
Tutoriale i kursy nie są po to by nauczyć Cię konkretnego projektu lecz zasad programowania, a tych tu nie widać. Delay można używać tylko do szybkiego zademonstrowania jakiegoś działania, w programie użytkowym pokazuje tylko, że nie wiesz co robisz. Do przycisku użyj biblioteki, nie musisz wymyślać koła. W case masz jeden przypadek? Pewnie tu możesz dodać kolejny i na nim pozostawić "animację" z ledami jak tam chcesz. Tak że z mojej strony tyle, generalnie tylko odesłanie do kursu na razie.
 
Odpowiedź
#3
To że nie wiem co robię to sam wiem dlatego proszę o pomoc chce po prostu zrobić 1 płytkę bo mam wizję która chce zrobić ale nie rozumiem tego kodowania kursy są ogólne, i to co mi potrzebne w żadnym nie znalazłem dlatego proszę o pomoc co powinienem dopisać aby po 1 animacji ładowania zaświeciły po prostu na biało i już tak świeciły do końca tylko tyle potrzebuje i bardzo proszę o pomoc
 
Odpowiedź
#4
Po prostu chce zrobić 1 animacje ładowania a potem zapalić je na 1 stały kolor wiem że to się da zrobić totalnie nie wiem jak i przyznaje się do tego oglądam te poradniki na YT czytam te forum Arduino ale tam jest ogólnie jak to działa te kody co oni tam mówią to albo jak zapalić 1 kolor ale nie rozumiem jak to z animacja podłączyć albo jak zapalić tęczę potem znalazłem bibliotekę co ma kod na zrobienie animacji ładowania ale teraz nie wiem jak w nią dodać efekt stałego święcenia w innym kolorze jeśli jest jakieś forum które pokazało by mi jak to połączyć to proszę mi podesłać bo naprawdę nie mogę tego znaleźć
 
Odpowiedź
#5
Zrozum, że to czego potrzebujesz to darmowy i ogólnie dostępny kurs Arduino, to czego oczekujesz to indywidualny kurs lub napisanie programu za Ciebie. Albo uczysz się programować, albo odtwarzasz gotowy projekt, inne drogi to szukanie jelenia, a to nie forum dla myśliwych.
 
Odpowiedź
#6
nie szukam nikogo aby zrobił to za mnie szukam po prostu pomocy ,nie znam tych bibliotek nie wiem jakie jeszcze są te co zainstalowałem nie mają tego efektu co potrzebuje a chce tylko zrobić 1 animację i aby świeciło już jednym kolorem do końca
 
Odpowiedź
#7
dobra nie aktualnie udało mi się znalazłem poradnik gdzie gościu pokazał jak zatrzymać animację wszystko wiem Smile dziękuję wszystkim za "Pomoc"
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości