Arduino Config Hilfe

    Arduino Config Hilfe

    Moin Leute
    Die Liebe Post hat es heute Geschafft mir mein Elegoo Uno R3 zu liefern.
    Gut dachte ich mir geht bestimmt ganz schnell Arduino an Rechner mit der Arduino Software schnell die Glediator Firmware drauf Gepackt und gut ist.
    So also Jinx Geöffnet gekuckt ah super wird erkannt ausgewählt und auf OK Geklickt.
    Wäre ja schön wenn es so einfach gegangen wäre!

    Was mich Wundert ich habe WS2811 nur an denn Strom Gepackt und Zack fingen sie an zu Leuchten und zwar Weiß.
    Ich habe GND und Data Pin 6 vom Arduino zu denn Scripts Gelegt. Eigentlich alles nach Handbuch
    Die haben sich auch nicht Gezuckt als ich Jinx geöffnet habe die sind einfach auf weiß Geblieben.
    Ein Widerstand 330Ohm Widerstand befindet sich zwischen der Data Leitung.
    Ich komme nicht weiter Hilfe

    Hier mal der Sketch denn ich auf denn Arduino habe



    Quellcode

    1. //##############################################################################
    2. //##############################################################################
    3. // #
    4. // Glediator to WS2812 pixel converter #
    5. // by R. Heller #
    6. // V 1.0 - 07.01.2014 #
    7. // wwww.SolderLab.de #
    8. // #
    9. // Receives serial data in Glediator protocol format @ 1 MBit/s #
    10. // and distributes it to a connectect chain of WS2812 pixels #
    11. // #
    12. // Adjust the correct DATA PIN and the correct NUMBER OF PIXELS you are using #
    13. // in the definitions section below before uploading this sketch to your #
    14. // Arduino device. #
    15. // #
    16. // Maxiumim number of supported pixeles is 512 !!! #
    17. // #
    18. // In the Glediator software set output mode to "Glediator_Protocol", #
    19. // color order to "GRB" and baud rate to "1000000" #
    20. // #
    21. //##############################################################################
    22. //##############################################################################
    23. //##############################################################################
    24. // #
    25. // Definitions --> Make changes ONLY HERE #
    26. // #
    27. // To find out the correct port, ddr and pin name when you just know the #
    28. // Arduino's digital pin number just google for "Arduino pin mapping". #
    29. // In the present example digital Pin 6 is used which corresponds to "PORTD", #
    30. // "DDRD" and "6", respectively. #
    31. // #
    32. //##############################################################################
    33. #define DATA_PORT PORTD
    34. #define DATA_DDR DDRD
    35. #define DATA_PIN 6
    36. #define NUMBER_OF_PIXELS 100
    37. //##############################################################################
    38. // #
    39. // Variables #
    40. // #
    41. //##############################################################################
    42. unsigned char display_buffer[NUMBER_OF_PIXELS * 3];
    43. static unsigned char *ptr;
    44. static unsigned int pos = 0;
    45. volatile unsigned char go = 0;
    46. //##############################################################################
    47. // #
    48. // Setup #
    49. // #
    50. //##############################################################################
    51. void setup()
    52. {
    53. // Set data pin as output
    54. DATA_DDR |= (1 << DATA_PIN);
    55. // Initialize UART
    56. UCSR0A |= (1<<U2X0);
    57. UCSR0B |= (1<<RXEN0) | (1<<TXEN0) | (1<<RXCIE0);
    58. UCSR0C |= (1<<UCSZ01) | (1<<UCSZ00) ;
    59. UBRR0H = 0;
    60. UBRR0L = 1; //Baud Rate 1 MBit (at F_CPU = 16MHz)
    61. ptr=display_buffer;
    62. //Enable global interrupts
    63. sei();
    64. }
    65. //##############################################################################
    66. // #
    67. // Main loop #
    68. // #
    69. //##############################################################################
    70. void loop()
    71. {
    72. if (go==1)
    73. {
    74. cli();
    75. ws2812_sendarray(display_buffer, NUMBER_OF_PIXELS * 3);
    76. sei();
    77. go=0;
    78. }
    79. }
    80. //##############################################################################
    81. // #
    82. // UART-Interrupt-Prozedur (called every time one byte is compeltely received) #
    83. // #
    84. //##############################################################################
    85. ISR(USART_RX_vect)
    86. {
    87. unsigned char b;
    88. b=UDR0;
    89. if (b == 1) {pos=0; ptr=display_buffer; return;}
    90. if (pos == (NUMBER_OF_PIXELS*3)) {} else {*ptr=b; ptr++; pos++;}
    91. if (pos == ((NUMBER_OF_PIXELS*3)-1)) {go=1;}
    92. }
    93. //##############################################################################
    94. // #
    95. // WS2812 output routine #
    96. // Extracted from a ligh weight WS2812 lib by Tim (cpldcpu@gmail.com) #
    97. // Found on wwww.microcontroller.net #
    98. // Requires F_CPU = 16MHz #
    99. // #
    100. //##############################################################################
    101. void ws2812_sendarray(uint8_t *data,uint16_t datlen)
    102. {
    103. uint8_t curbyte,ctr,masklo;
    104. uint8_t maskhi = _BV(DATA_PIN);
    105. masklo =~ maskhi & DATA_PORT;
    106. maskhi |= DATA_PORT;
    107. while (datlen--)
    108. {
    109. curbyte = *data++;
    110. asm volatile
    111. (
    112. " ldi %0,8 \n\t" // 0
    113. "loop%=:out %2, %3 \n\t" // 1
    114. "lsl %1 \n\t" // 2
    115. "dec %0 \n\t" // 3
    116. " rjmp .+0 \n\t" // 5
    117. " brcs .+2 \n\t" // 6l / 7h
    118. " out %2,%4 \n\t" // 7l / -
    119. " rjmp .+0 \n\t" // 9
    120. " nop \n\t" // 10
    121. " out %2,%4 \n\t" // 11
    122. " breq end%= \n\t" // 12 nt. 13 taken
    123. " rjmp .+0 \n\t" // 14
    124. " rjmp .+0 \n\t" // 16
    125. " rjmp .+0 \n\t" // 18
    126. " rjmp loop%= \n\t" // 20
    127. "end%=: \n\t"
    128. : "=&d" (ctr)
    129. : "r" (curbyte), "I" (_SFR_IO_ADDR(DATA_PORT)), "r" (maskhi), "r" (masklo)
    130. );
    131. }
    132. }
    133. //##############################################################################
    134. // #
    135. // End of program #
    136. // #
    137. //##############################################################################
    Läuft ja alles mit Fast LED.

    Scheint ein Software Problem zu sein.
    Habe bei Fast LED Pin 4 und 100 LEDs eingetragen läuft ohne Probleme.
    Packe ich das Glediator Sketch drauf geht nichts mehr. Pin und Anzahl bleiben gleich wird habe ich auch eingetragen.

    Wenn ich auf Start output Klicke dann fängt eine LED an zu leuchten.

    Weiß auch nicht wie genau ich die Config in Jinx machen soll hier das Aktuelle.
    Habe bei Jinx 100x4 Pixel und eingetragen habe ich 100 Pixel im Arduino. Habe nichts auf denn Arduino Installiert. Habe nur Jinx auf denn Rechner mehr nicht sprich Java und RXTX sind nicht drauf. Der Arduino bekommt die Daten nicht Richtig das zeigt ja sobald ich auf Start Output Klicke gehen alles LEDs aus.
    Habe Windows 10 Pro 64Bit
    Könnte das ein Problem sein?
    Der Code ist grade drauf

    Quellcode

    1. //##############################################################################
    2. //##############################################################################
    3. // #
    4. // Glediator to WS2812 pixel converter #
    5. // by R. Heller #
    6. // V 1.0 - 07.01.2014 #
    7. // wwww.SolderLab.de #
    8. // #
    9. // Receives serial data in Glediator protocol format @ 1 MBit/s #
    10. // and distributes it to a connectect chain of WS2812 pixels #
    11. // #
    12. // Adjust the correct DATA PIN and the correct NUMBER OF PIXELS you are using #
    13. // in the definitions section below before uploading this sketch to your #
    14. // Arduino device. #
    15. // #
    16. // Maxiumim number of supported pixeles is 512 !!! #
    17. // #
    18. // In the Glediator software set output mode to "Glediator_Protocol", #
    19. // color order to "GRB" and baud rate to "1000000" #
    20. // #
    21. //##############################################################################
    22. //##############################################################################
    23. //##############################################################################
    24. // #
    25. // Definitions --> Make changes ONLY HERE #
    26. // #
    27. // To find out the correct port, ddr and pin name when you just know the #
    28. // Arduino's digital pin number just google for "Arduino pin mapping". #
    29. // In the present example digital Pin 6 is used which corresponds to "PORTD", #
    30. // "DDRD" and "6", respectively. #
    31. // #
    32. //##############################################################################
    33. #define DATA_PORT PORTD
    34. #define DATA_DDR DDRD
    35. #define DATA_PIN 4
    36. #define NUMBER_OF_PIXELS 100
    37. //##############################################################################
    38. // #
    39. // Variables #
    40. // #
    41. //##############################################################################
    42. unsigned char display_buffer[NUMBER_OF_PIXELS * 3];
    43. static unsigned char *ptr;
    44. static unsigned int pos = 0;
    45. volatile unsigned char go = 0;
    46. //##############################################################################
    47. // #
    48. // Setup #
    49. // #
    50. //##############################################################################
    51. void setup()
    52. {
    53. // Set data pin as output
    54. DATA_DDR |= (1 << DATA_PIN);
    55. // Initialize UART
    56. UCSR0A |= (1<<U2X0);
    57. UCSR0B |= (1<<RXEN0) | (1<<TXEN0) | (1<<RXCIE0);
    58. UCSR0C |= (1<<UCSZ01) | (1<<UCSZ00) ;
    59. UBRR0H = 0;
    60. UBRR0L = 1; //Baud Rate 1 MBit (at F_CPU = 16MHz)
    61. ptr=display_buffer;
    62. //Enable global interrupts
    63. sei();
    64. }
    65. //##############################################################################
    66. // #
    67. // Main loop #
    68. // #
    69. //##############################################################################
    70. void loop()
    71. {
    72. if (go==1)
    73. {
    74. cli();
    75. ws2812_sendarray(display_buffer, NUMBER_OF_PIXELS * 3);
    76. sei();
    77. go=0;
    78. }
    79. }
    80. //##############################################################################
    81. // #
    82. // UART-Interrupt-Prozedur (called every time one byte is compeltely received) #
    83. // #
    84. //##############################################################################
    85. ISR(USART_RX_vect)
    86. {
    87. unsigned char b;
    88. b=UDR0;
    89. if (b == 1) {pos=0; ptr=display_buffer; return;}
    90. if (pos == (NUMBER_OF_PIXELS*3)) {} else {*ptr=b; ptr++; pos++;}
    91. if (pos == ((NUMBER_OF_PIXELS*3)-1)) {go=1;}
    92. }
    93. //##############################################################################
    94. // #
    95. // WS2812 output routine #
    96. // Extracted from a ligh weight WS2812 lib by Tim (cpldcpu@gmail.com) #
    97. // Found on wwww.microcontroller.net #
    98. // Requires F_CPU = 16MHz #
    99. // #
    100. //##############################################################################
    101. void ws2812_sendarray(uint8_t *data,uint16_t datlen)
    102. {
    103. uint8_t curbyte,ctr,masklo;
    104. uint8_t maskhi = _BV(DATA_PIN);
    105. masklo =~ maskhi & DATA_PORT;
    106. maskhi |= DATA_PORT;
    107. while (datlen--)
    108. {
    109. curbyte = *data++;
    110. asm volatile
    111. (
    112. " ldi %0,8 \n\t" // 0
    113. "loop%=:out %2, %3 \n\t" // 1
    114. "lsl %1 \n\t" // 2
    115. "dec %0 \n\t" // 3
    116. " rjmp .+0 \n\t" // 5
    117. " brcs .+2 \n\t" // 6l / 7h
    118. " out %2,%4 \n\t" // 7l / -
    119. " rjmp .+0 \n\t" // 9
    120. " nop \n\t" // 10
    121. " out %2,%4 \n\t" // 11
    122. " breq end%= \n\t" // 12 nt. 13 taken
    123. " rjmp .+0 \n\t" // 14
    124. " rjmp .+0 \n\t" // 16
    125. " rjmp .+0 \n\t" // 18
    126. " rjmp loop%= \n\t" // 20
    127. "end%=: \n\t"
    128. : "=&d" (ctr)
    129. : "r" (curbyte), "I" (_SFR_IO_ADDR(DATA_PORT)), "r" (maskhi), "r" (masklo)
    130. );
    131. }
    132. }
    133. //##############################################################################
    134. // #
    135. // End of program #
    136. // #
    137. //##############################################################################
    sprich Java und RXTX sind nicht drauf


    Die brauchst du für jinx nicht.

    Aber nochmal: Hast du die Pixel korrekt gepatcht? Hast du manuell gepatcht? Wenn ja, benutz mal die Fast Patch Funktion, vielleicht hast du manuell einen Fehler gemacht.

    ​Der Arduino bekommt die Daten nicht Richtig das zeigt ja sobald ich auf Start Output Klicke gehen alles LEDs aus.


    Das zeigt dass die Übertragung funktioniert, er aber nur leere Daten bekommt.
    Jo hatte ich wenn es die DHL es morgen schafft. Aktuell wird es noch von 2 Netzteilen Versorgt sind 2x4A. Insgesamt stehen also 8A zur Verfügung.

    Bei Fast LED gab es keine Probleme mit denn Netzteilen dort ging alles Reibungslos. Dort war dann alles schon Weiß und Rot Grün und Blau sind immer Durchgelaufen. Ging Mehrere Stunden ohne Probleme.

    Ist da noch eine Stellschraube in Jinx?
    Das Flackern ist am Anfang nicht wirklich zu sehen dann wirds immer Schlimmer.

    So hier mal FastLED da gibts keine Probleme mit denn Netzteil
    https://youtu.be/TUBrx5DxZ2I

    So damit ihr mal meine Einstellungen seht habe ich es mal schnell ein Video Gemacht. Flackern beliebt trotzdem bestehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „cool20“ ()

    So fehler geht nicht weg. Problem ich habe jetzt einfach mal denn 2 Streifen vorne Angeschlossen da bleibt gleich alles aus. Mit fastled getestet das ging Problemlos. Also es ist irgentwo der Fehler in der Komunikation.
    Habe von ein 330Ohm auf ein 100Ohm gewechselt da ging das Flackern ein bisschen weg. Ganz ohne war es aber wieder zu stark.

    Oder ist es hier eine Falsche Einstellung

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „cool20“ ()