Beiträge von SIGINT

    Hmmm,
    hab gerade Bemerkt, daß ich im falschen Forum bin X-) In diesem Forum kann man nicht davon ausgehen, daß sich alle mit Mikrocontrollern beschäftigen. Also: Du brauchst ein Verbindungsstück zwischen PC und LED-Stripe. Entweder einen Mikrocontroller, den du so programmierst, daß er zwischen deinem Programm und dem WS2801 vermittelt. Oder du nimmst einen FT232 und betreibst diesen im BitBang-Modus.(Nachtrag: Angeblich soll das nicht gehen.... davon bin ich aber nicht überzeugt) Du benötigst auf jeden Fall irgendeine SPI-Schnittstelle, mit der du den WS2801 füttern kannst. Für den Mikrocontroller gibt es genug Software, wenn du nach "Arduino WS2801" suchst.


    Gruß,
    SIGINT

    Sicher, daß es ein WS2801 ist? Manchmal bekommt man auch andere Controller angedreht, obwohl man einen WS2801 haben wollte. Ansonsten gibts genug Software zum testen im Netz.

    ! SICHERHEIT !

    Man darf NIE die Lichtleistung von HighPower-LEDs unterschätzen! Auch beim experimentieren sollte sichergestellt werden, daß man nie direkt in die LED schauen kann. Mit Netzhautverbrennungen ist nicht zu spassen. Moderne LEDs sind so hell, daß auch kurzzeitige Lichtblitze Schäden an der Netzhaut verursachen können. Nur als kurze Info.

    electro Paule:
    Sowas hatte ich schon befürchtet. Fang doch erstmal an dich in die Programmiersprache einzuarbeiten, bevor du größere Projekte realisieren möchtest. Beim Arduino handelt es sich um C++ mit vielen Arduino-Eigenen Klassen. (kompiliert wird mit avr-gcc)
    Wenn du die grobe Funktion von C/C++ verstanden hast, dann kannst du mit dem Arduino weitermachen.
    Zum Thema WS2801: Dir scheint die Funktion von den LED-Pixeln nicht ganz klar zu sein:
    Du hängst die Pixel ja hintereinander, trotzdem kannst du von jedem einzelnen Pixel die Farbe bestimmen. Wenn du also die ersten 50 LEDs rot und die 30 anderen blau haben möchtest, dann musst du denen das einfach sagen. Du schiebst am Anfang der Kette einfach nacheinander die Farben für alle 80 LEDs rein. Die LEDs schieben dann die Daten einfach weiter zur nächsten LED. Wenn du eine Farbe ändern möchtest, dann musst du alle Farben neu übertragen. Von der Programmseite aus ist die Sache ganz einfach:
    Du erstellst einfach dein WS2801 Objekt mit:


    WS2801 meine_leds = WS2801(anzahlPixel, dataPin, clockPin);


    danach musst du in setup "meine_leds.begin();" aufrufen.
    Dann kannst du mit
    meine_leds.setPixelColor(pixelnummer,r,g,b);
    die Farbe einstellen und mit
    meine_leds.show() die neuen Farben anzeigen lassen.



    Gruß,
    SIGINT


    P.S.: Hier mal ein Teil der Klassendefinition:


    "
    WS2801(uint16_t n, uint8_t dpin, uint8_t cpin); // Configurable pins
    WS2801(uint16_t n); // Use SPI hardware; specific pins only
    WS2801(void); // Empty constructor; init pins/strand length later
    void
    begin(void),
    show(void),
    setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b),
    setPixelColor(uint16_t n, uint32_t c),
    updatePins(uint8_t dpin, uint8_t cpin), // Change pins, configurable
    updatePins(void), // Change pins, hardware SPI
    updateLength(uint16_t n); // Change strand length
    uint16_t
    numPixels(void);
    uint32_t
    getPixelColor(uint16_t n);"

    Es ist egal, wo du eine Lötbrücke zwischen Blau und Rot hast... es wird immer der ganze Streifen lila leuchten. Das ist alles parallel geschaltet. Je 3 LEDs sind mit einem Widerstand in Reihe. (die einzelnen Segmente) Die Segmente hängen aber parallel an den Spannungsversorgungsleitungen. Ist bei einem Segment rot und blau kurzgeschlossen, dann auch bei den anderen. (über das eine Segement)


    Gruß,
    SIGINT

    Bei dem Chinazeug, das du vermutlich hast, ist von "brauchbar" bis "absoluter schrott" alles vertreten. Ich hab Stripes, die funktionieren schon einige Monate ohne Probleme und andere geben nach ein paar Tagen schon stellenweise den Geist auf. Vieles kann man flicken, manches aber nur rausschneiden. Einfach auf Verdacht die Lötstellen nachlöten, oder die defekten Teile rausschneiden. Ich hatte auch mal einen gebrochenen Widerstand.


    Gruß,
    SIGINT

    @bulldog: Das ist interesannt: Ich hab mir auch ein paar IRLZ34N gekauft, um ein LED-Stripe damit zu betreiben. :D Allerdings wollte ich das zuerst mit nem Arduino machen. Aber der WS2801/3 wäre auch ne nette lösung. Leider funktioniert deine Idee nicht, da der WS ja keine Spannung ausgibt und auch keinen Strom treibt. Für uns ist der "Constant Voltage Driving Mode with external Switches" des WS2801 interesannt... der WS2803 hat diesen Modus leider nicht. (Seite 10 vom WS2801)
    Ich bin mir aber nicht ganz sicher, ob man den NPN-Transistor ohne Probleme durch einen FET ersetzen kann. Eventuell schaltet der FET nicht schnell genug und es entsteht unötig Wärme. Aber einen Versuch ist es Wert. Ich werd bei Gelegenheit mal ein Adapter für mein WS2801 basteln und alles auf einem Steckbrett testen. Kann aber noch etwas dauern: Hab im Moment kein Platz zum ätzen.


    Gruß,
    SIGINT

    Auf Seite 4 des Datenblatts siehst du den internen Aufbau der Treiberstufen. Die können so keinen Strom liefern.
    Wenn, dann geht das nur mit einer externen Beschaltung.


    Gruß,
    SIGINT


    P.S.: @bulldog: Die 7V beziehen sich auf die maximale Spannung, die der Ausgang verkraftet. Über 7V wird der FET im Ausgangstreiber gebraten.Deshalb muss man bei größeren LED-Spannungen einen externen Transistor einplanen.

    Das Problem wird sein, daß du dann nur eine RGB-LED an dem WS2801 betreiben kannst. Technisch sollte das laut Datenblatt aber gehen. Ich glaube aber, daß nur LEDs mit gemeinsamer Anode direkt gehen. POL invertiert das Ausgangssignal wahrscheinlich nur logisch, nicht elektrisch.


    Gruß,
    SIGINT