- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 31

Thema: Kann ich vier Ws2812-Strips ansteuern?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von Gnom67 Beitrag anzeigen
    Die Port-Bits direkt im Prozessortakt mit Befehlen anzusprechen, ist natürlich schneller.
    Beim WS2812B ist die Zykluszeit 1250 ns (900 ns high + 350 ns low für 1 und 350 ns high + 900 ns low für 0) - das entspräche 10 Prozessortakten. In deinem Code hätte ich jetzt jeweils 10 Befehle erwartet, die das Portbit auf 1,1,1,1,1,1,1,0,0,0 oder 1,1,1,0,0,0,0,0,0,0 setzen. Stattdessen seh ich nur 1,1,1,1 und 1,1,0,0.
    Wird der Pin für die restliche Zeit, die durch Schleifen und Bedingungen verbraucht wird auf 0 gehalten?
    Lies erstmal das hier: Neopixel Timing. Und der Code ist aus einem Projekt von mir kopiert, er funktioniert.

    Statt 1-1-0-0 und einem 0 am Ende hätte ich auch 1-NOP-0-NOP- NOP schreiben können. Dauert genausolange. Ich fand aber so ist es übersichtlicher. Mit dem Timing, der Anzahl der Takte habe ich mit dem LA und dem Neopixel rumgespielt. Mit drei Takten High für eine Null gehts auch noch, mit nur einem nicht. Hab mich als Kompromiss für 2 entschieden. Die Low-Zeit ist nach Datenblatt zu lang (Shift und Loop), wie im Link beschrieben passt das aber. Und natürlich bleibt ein Portbit so stehen, wie es war.

    Wie machen das denn die Libraries? Wenn die alle mit solchem Bitgeschubse arbeiten, kann das eigentlich mit einem µC nicht wirklich sauber laufen, oder?
    Der Code in meinem Link macht das ähnlich. Der benutzt ein Macro fürs Timing, der am Ende auch nichts anderes macht, als NOPs einzufügen. Und der Code sieht auch nicht viel anders aus, wenn man I2C, SPI oder UART mit Bitbanging macht. Alles was schneller als 20-30µs ist, ist für einen Interrupt auf den 8-Bittern zu schnell. Und selbstverständlich kann das so sauber laufen. Code ist deterministisch.

    MfG Klebwax
    Geändert von Klebwax (23.04.2019 um 18:30 Uhr)
    Strom fließt auch durch krumme Drähte !

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.210
    @Moppi: so ungefähr war das auch gedacht, hehe.

    Die Frage zielte eher dahin, ob ein NodeMCU dafür überhaupt geeignet ist, ich hab bisher _einen_ von den Dingern im Einsatz (und somit nicht viel Erfahrung damit).
    Der zweite, der hier verwendet werden sollte, ist leider Schrott: da haben die freundlichen Chinesen schlichtweg eine der beiden Schottky-Dioden vergessen, somit kann ich den nich programmieren- sonst hätte ich das inzwischen probiert *grummel
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Doch, dass sollte mit einem nodeMCU funktionieren.
    Aber mal so, warum nochmal 4 einzelne LED-Streifen ansteuern?

    Was ist, wenn man Einen viertelt, die miteinander per Drähte verbindet und nur als eins ansteuert?

    Praktischer wärs, vier einzelne, dreiadrige Stränge ziehen zu können.
    Nochmal drüber nachdenken.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    Doch, dass sollte mit einem nodeMCU funktionieren.
    Aber mal so, warum nochmal 4 einzelne LED-Streifen ansteuern?

    Was ist, wenn man Einen viertelt, die miteinander per Drähte verbindet und nur als eins ansteuert?
    wurde eingangs doch erklärt, sehr lange Leitungen weil die 4 "Lampen" an unterschiedlcihen Stellen verbaut wurden

    und wenn die Leitung zu lang wird schleichen sich Signalfehler ein

    wollte mal 2 Streifen gegenüber im Zimmer installieren, habe also Band aufgetrennt und Leitungen dazwischen gelötet, Ergebnis war, der 2te Streifen bekam immer wieder falsche Farben oder die LEDs leuchteten nicht alle
    Vielleicht könnte man da was mit Signalaufbereitung retten oder besser geschirmtes Kabel oder oder oder ...

    ggf. einfach probieren und messen, wäre zumindest mal den Versuch wert, sind dann ja nur 4 Leitungen pro Lampe +, -, DI, DO (am besten GND als Abschirmung zwischen DI und DO legen)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.12.2018
    Beiträge
    459
    Da jeder WS2811-Chip das Signal aufbereitet, dürfte es eigentlich nur dann problematisch werden, wenn die Kabel von Ort zu Ort länger sind als die von µC zu den einzelnen Orten. Notfalls könnte man "auf halber Strecke" eine WS2812 dazwischenklemmen, die das Signal dann erneut aufbereitet. Die muss man dann halt immer auf 0x000000 schalten.
    Allerdings muss auch die Spannungsversorgung garantiert sein. Bei sehr langen Leitungen wirds da irgendwann eng und man braucht zusätzliche Leitungen, evtl. mit höherer Spannung und Stepdowns...

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.12.2018
    Beiträge
    459
    Da der NodeMCU mit 80 Mhz wesentlich schneller ist, als ein Arduino, sollte das überhaupt kein Problem sein. Mehr Speicher hat er auch...
    Für die Paar LEDs, die du ansteuern willst, reichts allemale.

  7. #7
    HaWe
    Gast
    Zitat Zitat von Gnom67 Beitrag anzeigen
    Da der NodeMCU mit 80 Mhz wesentlich schneller ist, als ein Arduino, sollte das überhaupt kein Problem sein. Mehr Speicher hat er auch...
    Für die Paar LEDs, die du ansteuern willst, reichts allemale.
    Ein Problem mit dem nodeMCU kann sein, dass er einen eingebauten Scheduler hat, mit dem er immer automatisch zwischendurch zum WiFi-Controller umschaltet und dadurch den Sketch-Code verlässt: das kann zu timing Problemen führen, insb. für verschiedene Datenbusse, bei denen es auf timing ankommt.
    Ich wäre also vorsichtig, grundsätzlich einen Arduino-Code unbesehen für den nodeMCU als "lauffähig" zu deklarieren, wenn man es nicht überprüft hat, und wenn es auch im Fall dieses Neopixel-Problems nicht unbedingt auftreten muss.

    dem OP würde ich also empfehlen, erst einmal die Standard-Libs mit Standard-Verkabelung auf dem nodeMCU zu testen, und erst dann, wenn es sicher funktioniert, andere Verkabelungs- und Pinvarianten zu probieren.

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    So weit ich gesehen habe, existieren für ESP8266 extra Bibliotheken.


    MfG

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    So weit ich gesehen habe, existieren für ESP8266 extra Bibliotheken.
    habe ich auch bereits erwähnt aber die scheitern meist an der Hürde 4 einzelner Kanäle da sie auf die Hardware Peripherie optimiert sind
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.210
    Machts nicht so kompliziert.

    Das _würde_ auch mit nem Arduino problemlos gehen (bei denen weiss ich sogar, dass es funktionieren würde, hab ich es auch schon gemacht)- mir ging es _einzig_ um die Frage, ob die NodeMCU das pinmässig gebacken kriegen.

    Und damit sich niemand Sorgen macht von wegen Timing, Kabellängen, Mondphasen:
    Es wird ein Wägelchen. Keine der LED's wird weiter vom Controller entfernt sein, als 30cm- aber der Wagen hat zwei Front-und zwei Rückleuchten.
    Da alles mit dem 3D-Drucker gemacht ist, hatte ich so schon gewisse Probleme, wo ich die Strippen unterbringe- und _nur_ darum will ich die nicht einfach auseinanderschneiden, und dann mit Kabeln zwischen "verlängern (kann man tun, hab ich anderswo auch gemacht, wasn Gefrickel wenn alles eingebaut wird).
    Häng ich nun jede der vier Lampen (die dann aus zwei, oder drei LED's samt Controllern bestehen wird) sternförmig an den NodeMCU, ist das schlichtweg viel einfacher zu verkabeln, als wenn ich die Signal-Leitung da um den Ring legen müsste.
    _Darum_ so.
    Und darum werden das auch nich mehr LED's: erfahrungsgemäss produzieren die 5050 in RGB ganz gut Wärme- bei zu vielen wird zumindest PLA wieder weich, hehe...und die Lampengläser sind aus PLA, weil ich kein wirklich durchsichtiges PETG hab (der Rest ist allerdings schon PETG).
    Ausserdem kommen billige Powerbänke (hab ich zwei, muss reichen) als Stromversorgung zum Einsatz- die würden mehr solcher LED's nich lange stemmen (angegeben mit 2400mAh, aber bloss eine Zelle drin, also kommt da wohl weniger als 2Ah raus bei 5V).

    Von daher: alles halb so wild....

    Trotzdem danke, auch für die längeren Erklärungen, die sind auch hilfreich (weniger für meine Bastelei, allgemein aber schon!).
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

Ähnliche Themen

  1. Ws2812....
    Von Head Free im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 04.12.2017, 16:38
  2. fahrzeug mit vier motoren und vier encodern
    Von inka im Forum Arduino -Plattform
    Antworten: 63
    Letzter Beitrag: 07.02.2016, 14:52
  3. WS2812: intelligente RGB-LED
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 10.04.2013, 21:50
  4. Antworten: 9
    Letzter Beitrag: 20.04.2011, 19:36
  5. Wie vier Motoren ansteuern???
    Von cinhcet im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 9
    Letzter Beitrag: 29.06.2006, 12:37

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress