WS2812 LED Anfägerfrage

Hallo,

ich fange gerade an mich mit dem Arduino und den WS2812 LED Strips zu beschäftigen.
Programmierkenntnisse habe ich in VB schon gesammelt, die helfen mir hier aber nicht weiter.

Ich habe mir aus einem 30 LED Strip ein 6x5 Matrix gebastelt. Jetzt würde ich gerne Zahlen auf der Matrix darstellen und habe für die “Acht” folgenden Code entwickelt.

#include <Adafruit_NeoPixel.h>
#define PIN 3


Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);


void setup() {
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
  strip.setBrightness(60);
}


int led_acht[] = {
  1,2,3,4,7,10,13,16,14,15,22,25,26,27,28};
int led_acht_Count = 16;  

void loop() {

  for (int thisPin = 0; thisPin < led_acht_Count; thisPin++) {

    strip.setPixelColor(led_acht[thisPin], strip.Color( 255, 0, 255));
    strip.show();

  }}

Ist es Möglich eine Methode zu entwickeln in der man einfach alle Zahlen (0-9) darstellen kann, z.B. um einen Countdown zu erstellen. Vielleicht kann man ja einen Array erstellen in dem lediglich die Led_Nr. übergeben wird.

Vielen Dank für eure Hilfe.

LG Marcus

Schon mal vielen Dank für die Antwort. Werde mich dann mal mit Bitmustern beschäftigen, damit kenne ich mich (noch) nicht aus

Danke, jetzt verstehe ich es so langsam :slight_smile:

Kann Dein Netzteil 1,8A liefern?
Grüße Uwe

Zum Testen betreibe ich den Arduino noch am USB-Anschluss.

Womit bereibst Du deine LED?

Gruß Tommy

fv1895:
Zum Testen betreibe ich den Arduino noch am USB-Anschluss.

Vorsicht, der USB Anschluss kann eigentlich nur 500mA liefern. Ich hab auf meinem Laptop zwar so ne schnell Lademöglichkeit aber da spielt das Arduino nicht mit.

Verwende lieber eine externe Stromversorgung für die LEDs.

lg dony

Danke für die Info, werde dann ein Netzteil verwenden.

Hallo fv1895,

Wenn du die eine kleine Matrix gebaut hast, kannst du auch die Bibliothek NeoMatrix und GFX von Adafruit nutzen, da sind Zahlen, Buchstaben, usw. schon hinterlegt.

Ich bin mir nur nicht sicher ob man die größe der Buchstaben verändern kann, aber ich denke das dürfte kein Problem sein.

Außerdem kannst du dann auch Texte über die Matrix laufen lassen. (Ich weis macht mit so einer kleinen Matrix zwar nicht viel Sinn, aber warum den zum herumprobieren nicht :smiley: )

Ich habe mir eine Matrix mit 20x10 LEDs gebaut da sah ein Text nicht schlecht aus.

Tetris hab ich ebenfalls drauf programmiert :D.

bdorer:
Ich habe mir eine Matrix mit 20x10 LEDs gebaut da sah ein Text nicht schlecht aus.

Tetris hab ich ebenfalls drauf programmiert :D.

Geil :smiley:

Schöne Deckenlampe für nen Partykeller.

Gruß

MiReu

@bdorer
Genau das selbe habe ich auch vor :slight_smile:
Da werde ich aber noch was Zeit für brauchen um mich in die Materie weiter einzuarbeiten :confused:

fv1895:
@bdorer
Genau das selbe habe ich auch vor :slight_smile:
Da werde ich aber noch was Zeit für brauchen um mich in die Materie weiter einzuarbeiten :confused:

Dann wünsche ich dir mal viel Spaß :smiley:

Wie gesagt die Bibliotheken Adafruit NeoPixel und GFX können dir sehr weiter helfen.

Bei fragen zu Befehlen oder ähnliches kannst du dich auch gerne melden.

Als kleiner Tipp. Ich habe das ganze zuerst auf einem 8x5 Shield programmiert, anschließend nur die Variablen für die Größe usw. geändert. Das war zum einem einfach und leicht überall zu programmieren.

Link: https://www.reichelt.de/Erweiterungsboards/ARD-SHD-MATRIX40/3/index.html?ACTION=3&LA=446&ARTICLE=192133&GROUPID=6669&artnr=ARD+SHD+MATRIX40&SEARCH=ws2812&trstct=pos_0

Also viel Erfolg :smiley:

Gruß bdorer

Erstmal vielen Dank für eure Hilfe, ich bin jetzt schon etwas weiter gekommen.

Eine Grundlegende Frage habe ich aber noch. Wie schon erwähnt habe ich aus einem LED-Strip mit 60 LED eine Matrix gebastelt. Diese hatte ich wie folgt verkabelt:

-> d1 - d2 - d3 - d4 - d5 - d6
|
d12 - d11 - d10 - d9 - d8 - d7
|
d13...........

Jetzt wurde mir gesagt das wäre falsch und man die Dioden so verkabeln muss:

-> d1 - d2 - d3 - d4 - d5 - d6
|-------------------------|
d7 - d8 - d9 -.........

Was ist den nun richtig? Oder ist das abhängig von der Bibliothek?

Gruß Marcus

Das kannst du in der NeoMatrix Bibliothek einstellen.

Für das setzten der Parameter wird dieser Befehl verwendet:

//Matrix definieren
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(20, 10, PIN,
                            NEO_MATRIX_TOP + NEO_MATRIX_LEFT +
                            NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE,
                            NEO_GRB            + NEO_KHZ800);

mit " NEO_MATRIX_PROGRESSIVE oder NEO_MATRIX_ZIGZAG. "

kannst du aussuchen was du machen willst, ob du Zig-Zag wie im ersten machst oder progressiv wie du im 2. erwähnt hast.

Auch hier ein Link für die Beschreibung der Bibliothek:NeoMatrix Library | Adafruit NeoPixel Überguide | Adafruit Learning System

MfG
bdorer

Vielen Dank. :slight_smile:

Hi

Da bei 'immer in der gleichen Richtung' die Leitungslänge beim Versprung in die nächste Reihe der Reihenlänge entspricht, kannst Du Dir Da schnell Störungen einfangen - wenn die Lib ein Zick-Zack bietet, würde ich Das nehmen und mich über die höhere Störsicherheit freuen.

MfG

Hey,

Also ich habe ca. immer ein 1 Meter langes Kabel von der letzten LED zur nächsten LED und habe noch kein Problem gehabt.

Die Störungen werden denke ich mal erst bei längeren und größeren Matrixen vorkommen :smiley:

So,

ich habe jetzt mit LED Streifen mal eine 8x8 Matrix gebastelt. Funktioniert einwandfrei, auch Schriften.

Vielen Dank für die nützlichen Tipps.

Kein Problem, immer wieder gerne :smiley: