Welcher arduino ist der Richtig für 300 WS2811 LEDs

Moin Leute,
So heute hat es der vermeintlich böse Händler geschafft mir ein Bisschen Spielzeug zu bringen. Um genau zu sein 2x5m LED Scipts mit 12 Volt und WS2811 das sind pro Scipt 150LEDs also Insgesamt 300 LEDs die Gesteuert werden möchten.
Ich möchte damit die Bühnenkante bekleben das sind exakt 10m. Die Scripts sollen Jinx! Angesteuert werden. Soll ein schöner Effekt Werden.

Ich bin in denn Thema relativ Neu ich mache er Sachen mit DMX geht bei der Anzahl der LEDs aber nicht.

Ich bin dann im lesen auf denn Arduino Uno gekommen.

Ich habe dazu aber noch ein paar fragen.
geht der Arduino hier
http://www.ebay.de/itm/ATMEGA16U2-Version-Uno-R3-MEGA328P-Board-mit-USB-Kabel-kompatibel-fur-Arduino-/291688508374

Schafft er es 300LEDs anzusteuern?
Könnte es da Probleme geben geben da es ein China Nachbau ist?

cool18:
Die Scripts sollen Jinx! Angesteuert werden.

Kenne ich nicht :frowning:

cool18:
geht der Arduino hier

Ja (ich verwende einen Nano oder einen ProMini).

cool18:
Schafft er es 300LEDs anzusteuern?

Ja, benötigt 900 Bytes RAM.

cool18:
Könnte es da Probleme geben geben da es ein China Nachbau ist?

Ja.

JINX! ist ein PC-Ansteuerprogramm für LED-Matritzen.
Die minimale Spalten-/Zeilenzahl ist 4, d.h. es ist für einen langen Strip (Matrix mit 1 Zeile) nicht gedacht. In wieweit man es umbiegen kann, habe ich nicht geschaut, das ist aber auch nicht Inhalt dieses Forums.

Schau Dir lieber mal FastLed an, wenn Du einen Arduino verwenden willst.

Gruß Tommy

Jinx ist eigentlich für eine Matrix gedacht das ist richtig. Im Forum von Jinx habe ich mich erkundigt es hieß kein Problem bei YT gibts auch ein paar Videos wo zu sehen ist das mann es machen kann. Sollt also kein Problem sein. Es wird dann halt nur 1 Zeile Angezeigt.
Ich habe mich bewusst für Jinx entschieden da ich es per Artnet ansprechen kann somit kann ich Jinx auch mit DMXControl Ansprechen. Da der Rest der Lichtanlage per DMX läuft und es mit DMXControl Gesteuert wird. Somit ist eine Fernsteuerung möglich ohne das ich mich auf noch ein Rechner Konzentrieren muss.

Die Frage war ja nur ob der Arduino denn ich oben verlinkt habe geht.

Mir fallen zwei möglicherweise kritische Punkte ein.

Das Protokoll für WS2811 dürfte dem mir besser bekannten von WS2812 vergleichbar sein. Dieses blockiert den Arduino, weshalb keine Daten von außen empfangen werden können. Der Datenstrom von Jinx muß daher im Handshake erfolgen, also unterbrechbar sein.

Desweiteren muß die für die Schnittstelle nötige Software in den Arduino passen.

Zu beiden Punkten kann ich keine Aussage machen, da ich Jinx nicht kenne.

So wie ich das sehe, gibt es keine JINX!-Implementation für Arduino.
Da hat er also noch viel Entwicklungsaufwand vor sich.

Deshalb hatte ich ja FastLed empfohlen.

Gruß Tommy

Bist Du sicher daß das 12V Strips sind und jede LED einzeln ansprechbar ist und nicht in 3-er Gruppen??
Grüße Uwe

Gute Frage,
das Problem hab ich mit meinem Strip

Dachte so: "Ey cool voll viele LEDs pro Meter"
und dann kam die Erkenntniss: "Was fürn sch*** das sind 3er Cluster .........."

So ich hätte vielleicht dazu schreiben sollen das Jinx mit denn firmware von glediator arbeitet das heißt eigentlich muss ich nur die glediator firmware runterladen und auf denn Arduino Packen. So mein Plan sah bei YouTube nicht so schwer aus.

Auf denn LED Streifen sind ICs drauf.

Die größte sorge macht mir der Arduino UNO ich hab bei Amazon ein gefunden der geanu die Selben technischen eigenschaften hat wie der Orginal. Die frage welchen soll ich kaufen?

Zun Thema FastLed
Sind dort Fertige Programme drinne?
Gibts eine Möglichkeit einer Ansteuerung über Artnet?
Wichtig es muss für denn Live Einsatz geeignet sein.

Auf denn LED Streifen sind ICs drauf.

Das habe ich angenommen da Ws2811 16 polige SMD-ICs sind. Ist da 1 IC pro 3 LED?

So ich hätte vielleicht dazu schreiben sollen das Jinx mit denn firmware von glediator arbeitet das heißt eigentlich muss ich nur die glediator firmware runterladen und auf denn Arduino Packen.

Gib uns mal einen Link dazu dann können wir mal schauen.

Die größte sorge macht mir der Arduino UNO ich hab bei Amazon ein gefunden der geanu die Selben technischen eigenschaften hat wie der Orginal. Die frage welchen soll ich kaufen?

Dieses Forum wird mit dem Erlös des Verkaufs der orginal-Arduinos finanziert. Es müßte alle Arduinos bzw dessen Nachbauten mit ATmega328, ATmega 2560 und ATmega32U4 funktionieren. Entscheide Du.
Grüße Uwe

Hier sind einmal die Infos zu Glediator
http://www.solderlab.de/index.php/software/glediator
Und hier gehts zum Download
http://www.solderlab.de/index.php/downloads/category/4-glediator

Ein IC ist aller 3 LEDs

cool18:
Hier sind einmal die Infos zu Glediator

Zitat:

Stripes & Matrices made of WS2811 / WS2812-Pixels (Neo-Pixel) [NEW]

Since LEDs with integrated PWM controller become more and more popular (and cheaper) many people were asking for steering these guys with Glediator. And here we go: We made a sketch for all kind of Arduino boards (UNO, Leonardo, Mini, Micro, Mega, etc.) that receives serial data and feeds stripes / matrices of WS2811/WS2812 pixels. You can download the sketch here.

The firmware can handle up to 512 pixels. It uses a fixed baud rate of 1000000 baud. Set color order to BRG within Glediator. It's highly recommended to put a resistor (100-200Ohm) into the data line. It's also no bad choice to add a 220µF capacitor to the power line of the stripe / matrix.

Der fertige Sketch für 300 Lichtpunkte kompiliert problemlos:

Der Sketch verwendet 730 Bytes (2%) des Programmspeicherplatzes. Das Maximum sind 32.256 Bytes.
Globale Variablen verwenden 914 Bytes (44%) des dynamischen Speichers, 1.134 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes.

cool18:
Ein IC ist aller 3 LEDs

Dann tippe ich mal auf drei zusammenhängende Lichtpunkte, also im Sketch #define NUMBER_OF_PIXELS 100

cool18:
Die größte sorge macht mir der Arduino UNO ich hab bei Amazon ein gefunden der geanu die Selben technischen eigenschaften hat wie der Orginal. Die frage welchen soll ich kaufen?

Als Hobbybastler muß ich aufs Geld schauen und kaufe Nanos daher direkt in China. Aus Erfahrung weiß ich, daß damit ein gewisses Risiko verbunden ist, welches ich aber gelegentlich bereit bin, einzugehen.

Wenn sich jemand semiprofessionell oder professionell mit Bühnentechnik beschäftigt, halte ich das Sparen für eher nebensächlich. Kaufe Dir lieber einen Arduino UNO (davon wird dieses Forum bezahlt!) oder einen legalen Nachbau UNO (der darf dann nicht Arduino heißen!). Das Projekt ist ja quelloffen. Manche UNOs haben eine verbesserte Stromversorgung oder einen anderen USB-Stecker. Ich habe mit Funduino begonnen, deutsche Anleitung, Firma und Garantie.

Meine Empfehlung für Dich wäre der kleine Nano, da schön klein und mit dem selben Prozessor ATmega328 wie der UNO. Der Link verweist auf einen China-Clone mit deutscher Garantie. Oder eben als Arduino.

Hier noch der Sketch, wenn es jemanden interessiert:

//##############################################################################
//##############################################################################
//                                                                             #
// Glediator to WS2812 pixel converter                                         #
// by R. Heller                                                                #
// V 1.0 - 07.01.2014                                                          #            
// wwww.SolderLab.de                                                           #
//                                                                             #
// Receives serial data in Glediator protocol format @ 1 MBit/s                #
// and distributes it to a connectect chain of WS2812 pixels                   #
//                                                                             #
// Adjust the correct DATA PIN and the correct NUMBER OF PIXELS you are using  # 
// in the definitions section below before uploading this sketch to your       #
// Arduino device.                                                             #
//                                                                             #
// Maxiumim number of supported pixeles is 512 !!!                             #
//                                                                             #
// In the Glediator software set output mode to "Glediator_Protocol",          #
// color order to "GRB" and baud rate to "1000000"                             #
//                                                                             #
//##############################################################################
//##############################################################################


//##############################################################################
//                                                                             #
// Definitions --> Make changes ONLY HERE                                      #
//                                                                             #
// To find out the correct port, ddr and pin name when you just know the       #
// Arduino's digital pin number just google for "Arduino pin mapping".         #
// In the present example digital Pin 6 is used which corresponds to "PORTD",  #
// "DDRD" and "6", respectively.                                               #
//                                                                             #
//##############################################################################

#define DATA_PORT          PORTD
#define DATA_DDR           DDRD						
#define DATA_PIN           6							
#define NUMBER_OF_PIXELS   300


//##############################################################################
//                                                                             #
// Variables                                                                   #
//                                                                             #
//##############################################################################

unsigned char display_buffer[NUMBER_OF_PIXELS * 3];
static unsigned char *ptr;
static unsigned int pos = 0;

volatile unsigned char go = 0;


//##############################################################################
//                                                                             #
// Setup                                                                       #
//                                                                             #
//##############################################################################

void setup()
{
  // Set data pin as output
  DATA_DDR |= (1 << DATA_PIN);
  
  // Initialize UART
  UCSR0A |= (1<<U2X0);                                
  UCSR0B |= (1<<RXEN0)  | (1<<TXEN0) | (1<<RXCIE0);   
  UCSR0C |= (1<<UCSZ01) | (1<<UCSZ00)             ; 
  UBRR0H = 0;
  UBRR0L = 1; //Baud Rate 1 MBit (at F_CPU = 16MHz)
  
  ptr=display_buffer;
  
  //Enable global interrupts
  sei();
}


//##############################################################################
//                                                                             #
// Main loop                                                                   #
//                                                                             #
//##############################################################################

void loop()
{  	
  if (go==1) 
  {
    cli();
    ws2812_sendarray(display_buffer, NUMBER_OF_PIXELS * 3); 
    sei();
    go=0;
  }
}


//##############################################################################
//                                                                             #
// UART-Interrupt-Prozedur (called every time one byte is compeltely received) #
//                                                                             #
//##############################################################################

ISR(USART_RX_vect) 
{
  unsigned char b;
  b=UDR0;
  
  if (b == 1)  {pos=0; ptr=display_buffer; return;}    
  if (pos == (NUMBER_OF_PIXELS*3)) {} else {*ptr=b; ptr++; pos++;}  
  if (pos == ((NUMBER_OF_PIXELS*3)-1)) {go=1;}
}


//##############################################################################
//                                                                             #
// WS2812 output routine                                                       #
// Extracted from a ligh weight WS2812 lib by Tim (cpldcpu@gmail.com)          #
// Found on wwww.microcontroller.net                                           #
// Requires F_CPU = 16MHz                                                      #
//                                                                             #
//##############################################################################

void ws2812_sendarray(uint8_t *data,uint16_t datlen)
{
  uint8_t curbyte,ctr,masklo;
  uint8_t maskhi = _BV(DATA_PIN);
  masklo =~ maskhi & DATA_PORT;
  maskhi |= DATA_PORT;

  while (datlen--) 
  {
    curbyte = *data++;

    asm volatile
    (
      "		ldi %0,8	\n\t"		// 0
      "loop%=:out %2, %3	\n\t"		// 1
      "lsl	%1		\n\t"		// 2
      "dec	%0		\n\t"		// 3
      "		rjmp .+0	\n\t"		// 5
      "		brcs .+2	\n\t"		// 6l / 7h
      "		out %2,%4	\n\t"		// 7l / -
      "		rjmp .+0	\n\t"		// 9
      "		nop		\n\t"		// 10
      "		out %2,%4	\n\t"		// 11
      "		breq end%=	\n\t"		// 12      nt. 13 taken
      "		rjmp .+0	\n\t"		// 14
      "		rjmp .+0	\n\t"		// 16
      "		rjmp .+0	\n\t"		// 18
      "		rjmp loop%=	\n\t"		// 20
      "end%=:			\n\t" 
      :	"=&d" (ctr)
      :	"r" (curbyte), "I" (_SFR_IO_ADDR(DATA_PORT)), "r" (maskhi), "r" (masklo)
    );
  }

}


//##############################################################################
//                                                                             #
// End of program                                                              #
//                                                                             #
//##############################################################################

cool18:
Ein IC ist aller 3 LEDs

Also leuchten immer 3 LED in der gleichen Farbe und Du hast dann nur 100 WS2811 oder anders gesagt nur 100 Bildpunkte aus je 3 LED.

Jo grade nochmal ins Produktdatenblatt gekuckt 3 LEDs Hägen zusammen. Für mich jetzt auch kein Problem da es auf 10 Meter eh egal ist. Ich habe auch kein Effekt drinnen wo es unheimlich wichtig Wäre das sie alle Einzeln Gesteuert werden.

So habe mir grade ein Original Arduino und ein Elegoo UNO R3 Bestellt. Der eine ist Reserve es kann ja immer was Passieren mann weiß ja nie.

Es handelt sich um dieses LED Streifen
https://de.aliexpress.com/item/WS2811-led-strip-5m-30-48-60-leds-m-10-16-20-pcs-ws2811-ic-meter/32261813740.html

Ich hoffe, Du hast auch an ein genügend starkes Netzteil >6A gedacht :slight_smile:

Dache so an 2x4A von jeder seite einspeisen damit die Letzen nicht Dunkler sind als die Ersten

cool18:
Um genau zu sein 2x5m LED Scipts ...

cool18:
Dache so an 2x4A von jeder seite einspeisen damit die Letzen nicht Dunkler sind als die Ersten

Jeder Strip bekommt sein eigenes Netteil, perfekt!

Dann für die Datenleitung UNO - Widerstand - Strip1 - Widerstand - Strip2, das gilt zumindest für WS2812. Der Widerstand schützt die Schutzdioden vor zu viel Strom in die falsche Richtung. Wie das bei WS2811 aussieht, weiß ich nicht. Wenn Du keine genaueren Angaben findest, nimm etwas zwischen 570 und 1000 Ohm.

Ich will die beiden Scripts Verbinden. Und jeweils von Beiden Enden Strom Einspeisen. Also das insgesamt 8 Amper zur Verfügung stehen. Also jeweils am ende von denn Scripts. Oder sollte ich sie doch lieber Trenne so das jeder Script sein Eigens Netzteil hat und nur das Daten Singal weitergeben wird?

Bei Geldiator war lesen 100-200Ohm Widerstand im Data Bereich. Hattest du auch Zitiert.
Gut Widerstände habe ich ne kiste voll in allen Ausführungen da ist es mir am ende egal was ich da einbaue.
Ein Kondensator sollte ja auch noch rein denke mal an Jeden Netzteil einen .

Wäre es möglich eine Diode mit ins Data einzubauen um es noch zusätzlich abzusichern?

Damit wir die gleiche Sprache sprechen: "Script" von lateinisch scriptum „geschrieben“, "Strip" ist ein Streifen, was hier gemeint ist.

Die Netzteile sind möglicherweise mehr als 10 m voneinander entfernt, weshalb sie wohl in unterschiedlichen Steckdosen stecken. Die eine hat Saft, die andere nicht, was dann? Du merkst es erst, wenn das eine Netzteil raucht. Da wären mir getrennte +12V in der Mitte sympathischer. GND natürlich immer zusammen lassen.

Die 100 - 200 Ohm erscheinen mir recht wenig, aber wenn es da so steht ... Bei WS2812 mit 5V verwende ich irgendwas bei 500 Ohm. Aber das bedeutet nicht, daß meine die beste Lösung ist.

Bühnentechnik ist mir hinsichtlich Störsignalen nicht so geläufig. Probiere doch erstmal so, wie in der Spezifikation vorgesehen. Wenn der Strip spinnt, wird ja niemand gefährdet.