Arduino+WS2801

Guten Abend zusammen. heute ist mein Arduino UNO V3 zusammen mit meinem WS2801 gekommen. Nun will ich gerne die LEDs einmal testen, allerdings weis ich nicht wirklich wie ich die Funktion prüfen kann. Sprich ich will einfach mal komplett alle 25 an machen um zu schauen, ob diese überhaupt leuchten. Kenn oder hat jemand von euch dafür ein Script, damit ich einfach mal alle LEDs aktivieren kann?

Hast Du ein Netzteil mit genügender Leistung? Ein Beispielprogramm findest Du in der FastSPI Bibliothek. Grüße Uwe

Hey, erst einmal Danke für deine Antwort.
Mein Netzteil liefer 3A, sollte also ausreichen für einen Streifen mit 25 LEDs.
Habe mir gerade eben die FastSPI Bibliothek aus dem netz geladen. Diese will aber irgendwie nicht gehen. Sprich versuche ich diese zu übertragen, meldet er “FastSPI_LED was not declared in this scope” Habe den Code hier noch im Anhang dabei.

#include <FastSPI_LED.h>

#define NUM_LEDS 25

// Sometimes chipsets wire in a backwards sort of way
struct CRGB { unsigned char b; unsigned char r; unsigned char g; };
// struct CRGB { unsigned char r; unsigned char g; unsigned char b; };
struct CRGB *leds;

#define PIN 4

void setup()
{
  FastSPI_LED.setLeds(NUM_LEDS);
  //FastSPI_LED.setChipset(CFastSPI_LED::SPI_SM16716);
  //FastSPI_LED.setChipset(CFastSPI_LED::SPI_TM1809);
  //FastSPI_LED.setChipset(CFastSPI_LED::SPI_LPD6803);
  //FastSPI_LED.setChipset(CFastSPI_LED::SPI_HL1606);
  //FastSPI_LED.setChipset(CFastSPI_LED::SPI_595);
  FastSPI_LED.setChipset(CFastSPI_LED::SPI_WS2801);

  FastSPI_LED.setPin(PIN);
  
  FastSPI_LED.init();
  FastSPI_LED.start();

  leds = (struct CRGB*)FastSPI_LED.getRGBData(); 
}

void loop() { 
  // one at a time
  for(int j = 0; j < 3; j++) { 
    for(int i = 0 ; i < NUM_LEDS; i++ ) {
      memset(leds, 0, NUM_LEDS * 3);
      switch(j) { 
        case 0: leds[i].r = 255; break;
        case 1: leds[i].g = 255; break;
        case 2: leds[i].b = 255; break;
      }
      FastSPI_LED.show();
      delay(10);
    }
  }

  // growing/receeding bars
  for(int j = 0; j < 3; j++) { 
    memset(leds, 0, NUM_LEDS * 3);
    for(int i = 0 ; i < NUM_LEDS; i++ ) {
      switch(j) { 
        case 0: leds[i].r = 255; break;
        case 1: leds[i].g = 255; break;
        case 2: leds[i].b = 255; break;
      }
      FastSPI_LED.show();
      delay(10);
    }
    for(int i = NUM_LEDS-1 ; i >= 0; i-- ) {
      switch(j) { 
        case 0: leds[i].r = 0; break;
        case 1: leds[i].g = 0; break;
        case 2: leds[i].b = 0; break;
      }
      FastSPI_LED.show();
      delay(1);
    }
  }
  
  // Fade in/fade out
  for(int j = 0; j < 3; j++ ) { 
    memset(leds, 0, NUM_LEDS * 3);
    for(int k = 0; k < 256; k++) { 
      for(int i = 0; i < NUM_LEDS; i++ ) {
        switch(j) { 
          case 0: leds[i].r = k; break;
          case 1: leds[i].g = k; break;
          case 2: leds[i].b = k; break;
        }
      }
      FastSPI_LED.show();
      delay(3);
    }
    for(int k = 255; k >= 0; k--) { 
      for(int i = 0; i < NUM_LEDS; i++ ) {
        switch(j) { 
          case 0: leds[i].r = k; break;
          case 1: leds[i].g = k; break;
          case 2: leds[i].b = k; break;
        }
      }
      FastSPI_LED.show();
      delay(3);
    }
  }
}

Brauchen die WS2801 nicht 2 Pins? Laut letzten Beitrag von http://forum.arduino.cc/index.php/topic,167150.0.html clk pin13 sI pin 11.

Grüße Uwe

Hey, genau ich habe von dort mal das Script verwendet. Da konnte ich das Script auch übertragen. Allerdings gehen meine LEDs immer noch nicht :( Was mir zusätzlich noch aufgefallen ist, beim einstecken der Spannungsversorgung, flackern alle LEDs, bis auf die 1. ganz kurz auf. Ich denke wohl, da ist was mit dem LED Strang nicht i.O.