Neopixel - LEDS leuchten obwohl sie es nicht sollten
|
24.11.2020, 00:34
(Dieser Beitrag wurde zuletzt bearbeitet: 24.11.2020 00:36 von Mauser.)
Beitrag #1
|
|||
|
|||
Neopixel - LEDS leuchten obwohl sie es nicht sollten
Moin,
ich habe mir eine Matrix aus w2812 LEDs gebastelt (15*18=270 LED). Jede LED ist einzeln ansprechbar. An der Verdrahtung kann es somit nicht liegen. Auf dieser Matrix möchte ich das Spiel Snake realisieren. Ich habe es auch geschafft. Die Schlange ist über eine IRFernbediedung steuerbar und wächst sofern sie ein random-gespawntes Pixel aufnimmt. Allerdings habe ich folgendes Problem. Es gehen wahllos LEDs an, in den verschiedensten Farben. Diese LEDs bzw die Farben habe ich im Code nicht ein einziges Mal verwendet. Ebenso ist die Helligkeit bei diesen LEDs auf maximum. Dabei handelt es sich um 1-2 LED Streifen (sind ca 15 Pixel die aufleuchten und das im Farbwechsel) Der ganze Code ist hier zu finden https://pastebin.com/cFpS5s7W ich hoffe ich habe es verständlich auskommentiert. Soweit ich das beurteilen kann liegt der Fehler in Zeile 164. Die Länge des Weges (dieser enthält die "Bewegungsdaten" der Schlange) kann ich als konstante angeben, dabei wächst natürlich die Schlange nicht. Wird die Kommentierung aufgehoben liegt das o.g. Problem vor und die Schlange wächst. Steuerung funktioniert auch einwandfrei. Problem sind nur die zufällig aufleuchtenden Lichter. Ich habe schon einiges Versucht den Fehler zu finden, leider ohne Erfolg. Daher möchte ich euer Schwarmwissen nutzen. Vielen Dank für die Hilfe! |
|||
24.11.2020, 11:34
(Dieser Beitrag wurde zuletzt bearbeitet: 24.11.2020 11:35 von Tommy56.)
Beitrag #2
|
|||
|
|||
RE: Neopixel - LEDS leuchten obwohl sie es nicht sollten
Wo in Deinem Beitrag siehst Du eine Projektvorstellung?
Stelle Deinen Sketch bitte direkt hier ins Forum. Benutzte dazu Codetags. Wie das geht, steht hier. Das kannst Du auch noch nachträglich ändern. Welchen MC benutzt Du? Gruß Tommy @Mod: Bitte verschieben "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
24.11.2020, 11:54
Beitrag #3
|
|||
|
|||
RE: Neopixel - LEDS leuchten obwohl sie es nicht sollten
(24.11.2020 00:34)Mauser schrieb: Ich habe schon einiges Versucht den Fehler zu finden, leider ohne Erfolg. Was genau hast du versucht ? Wie hast du die Spannungsversorgung angeschlossen ? Was für ein Netzteil verwendest du ? Gruß Dieter I2C = weniger ist mehr: weniger Kabel, mehr Probleme. ![]() |
|||
24.11.2020, 14:20
Beitrag #4
|
|||
|
|||
RE: Neopixel - LEDS leuchten obwohl sie es nicht sollten
(24.11.2020 11:34)Tommy56 schrieb: Wo in Deinem Beitrag siehst Du eine Projektvorstellung? Hallo Tommy, danke für die Info, code wird nun hoffentlich so angezeigt. Code: #include <IRremote.h> Ich nutze einen Arduino Uno. Ich werde gleich noch ein paar Bilder hochladen um mein Problem zu verdeutlichen. Dir schonmal danke für die Antwort. LG Mauser |
|||
24.11.2020, 14:43
Beitrag #5
|
|||
|
|||
RE: Neopixel - LEDS leuchten obwohl sie es nicht sollten
(24.11.2020 11:54)hotsystems schrieb:(24.11.2020 00:34)Mauser schrieb: Ich habe schon einiges Versucht den Fehler zu finden, leider ohne Erfolg. Hallo hotsystems, Ich habe damit angefangen die Unterfunktionen die in Loop aufgerufen werden auszuklammern um den Fehler einzugrenzen. Das hat mich dann auf den Befehl "Lange = Lange 1" gebracht. Ich habe zudem die Lange auf die Konstanten 3, 5, 10 abgeändert und das verlief ohne Probleme. Weiterhin habe ich mir das Array Weg[x] ausgeben lassen. Hier standen keine Merkwürdigen Elemente drin, sondern nur die Pixel die aktuell Eingeschaltet sein sollten. Zur Spannungsversorgung nutzze ich den USB Port meines PCs. Bevor ich mit dem Programmieren angefangen habe, hatte ich alle 270 LED der Matrix über den 5V Anschluss einschaltten können. Demnach erschien mir das erstmal auszureichen. Die spätere Stromversorgung wird über ein 5V Netzteil ablaufen. Zur Schaltung möchte ich folgendes erläutern. - Der PWM Pin 6 des Arduino ist mit dem Datenkontakt der ersten W2812 LED verbunden - Der 5V Pol des Uno geht auf den Pluspol der ersten LED sowie auf den des IR-Sensor Moduls (Anschluss R) - Der Ground Pol des Arduino ist mit dem Minuspol der ersten LED verbunden und mit dem IR-Sensor Modul (Anschluss G) - PWM Pin 11 des Arduino ist mit dem Datenpol des IR-Sensor verbunden. - Bei den LED handelt es sich um LED Streifen. Der ursprüngliche Streifen war 300 LED lang, ich habe diesen mehrmals aufgeteilt. Die letzte LED des ersten Streifens ist mit der ersten LED des zweiten Streifens verbunden usw. Ansprechbar sind alle LEDs. Ich werde im nächsten Post mein Projekt vorstellen und 2 Bilder hochladen. Ich danke dir schoneinmal für deine Antwort. LG Mauser |
|||
24.11.2020, 15:00
(Dieser Beitrag wurde zuletzt bearbeitet: 24.11.2020 15:02 von Mauser.)
Beitrag #6
|
|||
|
|||
RE: Neopixel - LEDS leuchten obwohl sie es nicht sollten
Projektvorstellung
Ich habe mir von Amazon folgende W2812 LED bestellt. https://www.amazon.de/-/en/gp/product/B0...UTF8&psc=1 Diese 300 LED Kette habe ich mehrfach aufgetrennt um eine LED Matrix zu kreiren. Die Matrix ist 18 Zeilen tief und 15 LEDs breit. In Summe stehen somit 270 Led zur Verfügung. Hier möchte ich das Spiel Snake realisieren. Um die LED gezielt anzusteuern nutze ich einen Arduino UNO. Der Bediener kann später über eine IR Fernbedienung die Snake steuern. Dazu folgendes Bild im Anhang. Auf diesem Bild ist also die Matrix zu sehen, sowie die Lötkontakte. Die erste LED des ersten Streifens ist mit dem Arduino verbunden. Die letzte LED des ersten Streifens ist mit der ersten LED des zweiten Streifens verbunden usw. Auf der Rückseite der Holzplatte habe ich einen Bereich für die Verkabelung ausgefräst, das ganze wird dann einfach mit einer Holzplatte verdeckt. Zur späteren Spannungsversorgung möchte ich ein 5V Netzteil verwenden mit einem USB-Mini Anschluss. Ein Arduino Nano soll später die Rechenarbeit ausführen. (Hoffe das es so geht) Damit die Verkabelung an der Vorderseite nicht mehr zu sehen sein wird, ist ein Holzgitter geplant, dass ich über die LEDs legen möchte, um jeden Pixel ein Quadrat ausleuchten zu lassen. das ganze wird dann von einer "milchigen" Plexiglasplatte verdeckt, welche ich evtl. mit einer Spiegelfolie auskleiden werde. Die Matrix soll als Spiegel mit Beleuchtung, aber auch als Spiel dienen. Dabei ist mir das Spiel Snake in den Sinn gekommen, sowie Tetris. Das Programm für das Spiel Snake ist so gut wie fertig. Problem Dazu eine Erklärung zu dem Bild. In der ersten Zeile wandert die Grüne-Snake von links nach rechts (horizontal +). Jeden 40 Durchlauf des LOOP Teils spawnt ein Pixel in der Farbe Gelb. Nimmt der Kopf der Schlange diesen Pixel auf verlängert sich deren Größe um +1; Das alles funktioniert schon. Jetzt das schon oben beschriebene Problem. Die bunten Lichter die in der Mitte der Matrix zu sehen sind, sollten eigentlich nicht leuchten. Ich habe absolut keine Ahnung wieso. Der Code ist im vorherigen Beitrag zu sehen. Wird hier der Befehl Länge=Länge+1 ausgeklammert, leuchten die bunten Lichter nicht. Und da würde ich euch gerne um Hilfe bitten. LG Mauser |
|||
24.11.2020, 15:17
Beitrag #7
|
|||
|
|||
RE: Neopixel - LEDS leuchten obwohl sie es nicht sollten
So beim drüberschauen finde ich nichts, was diesen Effekt erzeugt.
Du wirst also wohl den Weg gehen müssen, über serielle Ausgaben der Variablenwerte herauszufinden, wo Dein Sketch falsch abbiegt. Mir ist aber aufgefallen, dass Du manchmal etwas ungünstig agierst: Code: // Dein Code Hast Du das schon mit der IR-Fernbedienung getestet, weil Du dazu später schreibst? In den meisten Fällen vertragen sich WS2812 und IR-Empfang nicht miteinander, da das Zeitverhalten von show() sehr zeitkritisch ist und deshalb in dieser Zeit die Interrupts gesperrt werden. Deshalb kann dann über IR nichts empfangen werden. Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
24.11.2020, 15:23
Beitrag #8
|
|||
|
|||
RE: Neopixel - LEDS leuchten obwohl sie es nicht sollten
Dir ist hoffentlich klar, dass du ca. 16 A für deine Matrix (270 x 60mA) benötigst. Da reicht es def. nicht, die mit dem Arduino zu speisen. Auch nur ein Spannungsanschluß ist viel zu wenig. Aus meiner Erfahrung ist es nötig, die Spannung alle 2 Zeilen einzuspeisen.
Nur so wird das stabil funktionieren. Gruß Dieter I2C = weniger ist mehr: weniger Kabel, mehr Probleme. ![]() |
|||
|
|
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste