Arduino Uno Upload Problem

Hallo zusammen
Hab seit 2 Tagen ein Problem mit dem Uno.
Habe diesen Sketch unten erfolgreich auf dem Uno und Nano hochgeladen, die LED´s aber gingen immer noch nicht. Also es passierte nichts wenn ich mit der Software rumprobiert habe.

Danach wollte ich auf dem Uno ein anderes uploaden. Jetzt kann ich garnichts uploaden.

Ist der Uno kaputt?

#include "FastLED.h"

#define NUM_LEDS (2*10+2*5)
#define LED_DATA_PIN 6
#define NUM_BYTES (NUM_LEDS*3) // 3 colors  

#define BRIGHTNESS 255
#define UPDATES_PER_SECOND 60

#define TIMEOUT 3000

#define MODE_ANIMATION 0
#define MODE_AMBILIGHT 1
#define MODE_BLACK 2
uint8_t mode = MODE_ANIMATION;

byte MESSAGE_PREAMBLE[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
uint8_t PREAMBLE_LENGTH = 10;
uint8_t current_preamble_position = 0;

unsigned long last_serial_available = -1L;

int led_counter = 0;
int byte_counter = 0;

CRGB leds[NUM_LEDS];
byte buffer[NUM_BYTES];

// Filler animation attributes
CRGBPalette16 currentPalette = RainbowColors_p;
TBlendType    currentBlending = LINEARBLEND;
uint8_t startIndex = 0;

void setup()
{
    Serial.begin(1000000); // 115200
    FastLED.clear(true);
    FastLED.addLeds<WS2812B, LED_DATA_PIN, GRB>(leds, NUM_LEDS);
    FastLED.setBrightness(BRIGHTNESS);
}

void loop()
{
    switch (mode) {
        case MODE_ANIMATION: 
            fillLEDsFromPaletteColors();
            break;
        
        case MODE_AMBILIGHT:
            processIncomingData();
            break;

            case MODE_BLACK:
            showBlack();
            break;
    }
    
}

void processIncomingData()
{
    if (waitForPreamble(TIMEOUT))
    {
        Serial.readBytes(buffer, NUM_BYTES);

        while (byte_counter < NUM_BYTES)
        {
            byte blue = buffer[byte_counter++];
            byte green = buffer[byte_counter++];
            byte red = buffer[byte_counter++];
            
            leds[led_counter++] = CRGB(red, green, blue);
        }

        FastLED.show();
        
        // flush the serial buffer to avoid flickering
        while(Serial.available()) { Serial.read(); } 
        
        byte_counter = 0;
        led_counter = 0;
    }
    else
    {
        //if we get here, there must have been data before(so the user already knows, it works!)
        //simply go to black!
        mode = MODE_BLACK;  
    }
}

bool waitForPreamble(int timeout)
{
    last_serial_available = millis();
    current_preamble_position = 0;
    while (current_preamble_position < PREAMBLE_LENGTH)
    {
        if (Serial.available() > 0)
        {
            last_serial_available = millis();

            if (Serial.read() == MESSAGE_PREAMBLE[current_preamble_position])
            {
                current_preamble_position++;
            }
            else
            {
                current_preamble_position = 0;
            }
        }

        if (millis() - last_serial_available > timeout)
        {
            return false;
        }
    }
    return true;
}

void fillLEDsFromPaletteColors()
{
    startIndex++;

    uint8_t colorIndex = startIndex;
    for( int i = 0; i < NUM_LEDS; i++) {
            leds[i] = ColorFromPalette(currentPalette, colorIndex, BRIGHTNESS, currentBlending);
            colorIndex += 3;
        }

    FastLED.delay(1000 / UPDATES_PER_SECOND);

    if (Serial.available() > 0)
    {
        mode = MODE_AMBILIGHT;
    }
}

void showBlack()
{     
    for( int i = 0; i < NUM_LEDS; i++) 
    {
        leds[i] = CRGB(0,0,0);
    }
    FastLED.delay(1000 / UPDATES_PER_SECOND);

    if (Serial.available() > 0)
    {
        mode = MODE_AMBILIGHT;
    }
}

Das ist die Fehlermeldung die ich bekomme.

Arduino: 1.8.2 (Windows 10), Board: "Arduino/Genuino Uno"

In file included from D:\Eigene Dateien\Downloads\Bambilight-master\Bambilight-master\Arduino\bambilight\bambilight.ino:1:0:

D:\Eigene Dateien\Dokumente\Arduino\libraries\FastLED/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.003

 #    pragma message "FastLED version 3.001.003"

                     ^

Der Sketch verwendet 5698 Bytes (17%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.
Globale Variablen verwenden 517 Bytes (25%) des dynamischen Speichers, 1531 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x0a
Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x0a

Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.

Setze doch mal deine Sketch und Fehlermeldung in Code-tags, nicht in Quote-Tags.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Das kannst du auch nachträglich machen.
Dazu den Sketch markieren und die Schaltfläche klicken.

Damit wird dieser für alle besser lesbar.

Verwende ein anderes USB-Kabel oder USB-Port.

Und mache das was in der Fehlermeldung am Ende steht.

Ziehe mal den UNO vom USB-Port des PCs ab, boote den PC neu (ernst gemeint), stecke den Arduino wieder an und versuche den Upload mit der IDE erneut. Wenn Du immer noch den selben Fehler kriegst, ist die Wahrscheinlichkeit eines Defekts relativ hoch.

Geht denn der Nano noch zu flashen ?

Origami:
Ist der Uno kaputt?

Ich schätze mal nein, aber womöglich ist das Hirn des Programmierers kaputt:

Serial.begin(1000000); // 115200

Also eine eins mit sechs Nullen dran soll 115200 ergeben, oder wie soll man den Kommentar verstehen?

Man liest hier im Forum ja so einiges.
Aber manches ist mir völlig unbegreiflich.

Hallo zusammen
Also USB Kabel habe ich jetzt 3 Stück probiert, der Fehler kommt immer noch.
PC Neu Boote bringt auch nichts.
USB Port 4 verschiedene und an einem anderen PC probiert geht nicht. Immer der selbe Fehler

Auf den NANO kann ich uploaden wie ich will geht immer noch. Zwar funktionieren die Led s auch hier nicht aber upload geht.

Ausführlicher Fehlermeldung kann ich nicht posten weil ich diese Meldung bekomme.

The message has the following error or errors that must be corrected before continuing:
The message exceeds the maximum allowed length (9000 characters).

Fehlermeldung

Fehlermeldung.txt (39.1 KB)

jurs:
Ich schätze mal nein, aber womöglich ist das Hirn des Programmierers kaputt: ....

Serial.begin(1000000); // 115200

Weiß nicht. Muss das sein? Ich verstehe, dass man
mit der Zeit und den immer gleichen "Fehlern" irgendwann nen Rappel bekommt.
Wenn der Fragende aber einfach den Wald vor lauter Bäumen nicht sieht?
Mensch wenn ich Profi wäre, bräuchte ich das Forum nicht. Da hat man ja selbst als Mitleser Angst ne Frage zu stellen. :confused:

Stefan

Serial.begin(1000000);
Wie kommst Du zu diesem Wert?

Wie versorgst Du die 30 LED mit versorgungsspannung?

Funktioniert der Upload auch nicht wenn Du die LED vom Arduino trennst?

Grüße Uwe

Hi@uwefed

Ich habe einmal 1 Meter Ws2812B 30 Led´s/m und einmal 5 Meter Ws2812B 30 Led´s/m.

Stromversorgung habe ich einmal ein Netzteil mit 5V 3A und ein Netzteil mit 5V 8A

Ich uploade grundsätzlich ohne eine Verbindung zu den LED´s
Also der UNO ist so wie es aussieht Defekt.
Zu dem Wert habe ich keine Ahnung. Ich habe es nach Anleitung gemacht, und den Sketch auch so runtergeladen.
Ich habe da nichts verändert.

Aber inzwischen glaube ich das die LED Streifen beide Defekt sind.

Hab gerade diesen Sketch auf den Nano geladen und die LED´S bleiben wieder Dunkel.
strandtest

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

#define PIN 6

// Parameter 1 = number of pixels in strip
// Parameter 2 = Arduino pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(30, PIN, NEO_GRB + NEO_KHZ800);

// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input
// and minimize distance between Arduino and first pixel.  Avoid connecting
// on a live circuit...if you must, connect GND first.

void setup() {
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
  #if defined (__AVR_ATtiny85__)
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
  #endif
  // End of trinket special code


  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop() {
  // Some example procedures showing how to display to the pixels:
  colorWipe(strip.Color(255, 0, 0), 50); // Red
  colorWipe(strip.Color(0, 255, 0), 50); // Green
  colorWipe(strip.Color(0, 0, 255), 50); // Blue
//colorWipe(strip.Color(0, 0, 0, 255), 50); // White RGBW
  // Send a theater pixel chase in...
  theaterChase(strip.Color(127, 127, 127), 50); // White
  theaterChase(strip.Color(127, 0, 0), 50); // Red
  theaterChase(strip.Color(0, 0, 127), 50); // Blue

  rainbow(20);
  rainbowCycle(20);
  theaterChaseRainbow(50);
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}

void rainbow(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    for(i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i+j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
  for (int j=0; j<10; j++) {  //do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, c);    //turn every third pixel on
      }
      strip.show();

      delay(wait);

      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}

//Theatre-style crawling lights with rainbow effect
void theaterChaseRainbow(uint8_t wait) {
  for (int j=0; j < 256; j++) {     // cycle all 256 colors in the wheel
    for (int q=0; q < 3; q++) {
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, Wheel( (i+j) % 255));    //turn every third pixel on
      }
      strip.show();

      delay(wait);

      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  }
  if(WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
  WheelPos -= 170;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}

Normaleweise sollten die LED´s jetzt anfangen die verschieden Tests zu duchlaufen.

Du solltest deinen Test mal mit einem einfachen Sketch durchführen.
In den Beispielen sind doch auch einfachere, die nur blinken.

Ausführlicher Fehlermeldung kann ich nicht posten weil ich diese Meldung bekomme.

Du hast ein Problem mit dem hochladen.
Dann solltest du auch die ausführlichen Meldungen beim Hochladen aktivieren.

Denn:
Das Kompilieren klappt.
Da brauchst du die ausführlichen Meldungen (jetzt ausnahmsweise) nicht

HotSystems:
Du solltest deinen Test mal mit einem einfachen Sketch durchführen.
In den Beispielen sind doch auch einfachere, die nur blinken.

Hab auf die schnelle den gefunden. Ich bin nicht Fit darin. :confused:

Ich dachte ich habe beides angeklickt.

Hier der Upload

Arduino: 1.8.2 (Windows 10), Board: "Arduino/Genuino Uno"

Der Sketch verwendet 3284 Bytes (10%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.
Globale Variablen verwenden 40 Bytes (1%) des dynamischen Speichers, 2008 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM4 -b115200 -D -Uflash:w:C:\Users\ori19\AppData\Local\Temp\arduino_build_413249/strandtest.ino.hex:i 

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM4
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x2a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x2a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x2a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x2a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x2a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x2a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x2a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x2a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x2a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x2a

avrdude done.  Thank you.

Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.

Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.

Origami:
Hab auf die schnelle den gefunden. Ich bin nicht Fit darin. :confused:

Ich befürchte, hier kommt jetzt so einiges durcheinander.

Evtl. solltest du einen weiteren Thread aufmachen.

Also hier ist mal ein einfacher "Neopixel-Sketch" der zum testen besser geeignet ist.

// NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library

#include <Adafruit_NeoPixel.h>
#define PIN1            3

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS      12 

// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
// example for more information on possible values.

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN1, NEO_GRB + NEO_KHZ800);
int delayval = 25; // delay for half a second

void setup() {
  pixels.begin(); // This initializes the NeoPixel library.
}

void loop() {
  for (int i = 0; i < NUMPIXELS; i++) {
    pixels.setPixelColor(i, pixels.Color(255, 150, 0)); // Moderately bright green color.  70
    pixels.show(); // This sends the updated pixel color to the hardware.
    delay(delayval); // Delay for a period of time (in milliseconds).
  }
  delay(200);
  for (int j = NUMPIXELS; j > 0; j--) {
    pixels.setPixelColor(j - 1, pixels.Color(0, 0, 0)); // Moderately bright green color.
    pixels.show(); // This sends the updated pixel color to the hardware.
    delay(delayval); // Delay for a period of time (in milliseconds).
  }
  delay(200);
}

Die Farbe ist fast Orange und die Leds gehen nacheinander an und wieder aus.
Evtl. Pin-Nummer und Anzahl anpassen.
Der Sketch funktioniert auf einem intakten Uno oder Nano, bzw. Atmega328.

@HotSystems

Danke aber auch hier passiert nichts.
So einmal Defekten Uno und 6 Meter Streifen :o
Ich besorge mir lieber die WS2801 Strips.

Eine Frage ist z.B PIN 3 beim Uno der Pin D3 beim Nano?

Origami:
@HotSystems

Danke aber auch hier passiert nichts.
So einmal Defekten Uno und 6 Meter Streifen :o
Ich besorge mir lieber die WS2801 Strips.

Eine Frage ist z.B PIN 3 beim Uno der Pin D3 beim Nano?

Ja, D3 ist 3 beim Uno, oder auch D3

Aber inzwischen glaube ich das die LED Streifen beide Defekt sind.

Du wirst die erste WS2812 kaputtgemacht haben weil Du die Versorgungsspannung der LED ausgeschaltet hast und der Arduino war noch eingeschaltet.

Entferne die erste WS2812 des Streifens und schalte zur Sicherheit einen 330 Ohm Widerstand zwischen Arduino und Streifen und zwischen 1mStreifen und 5mStreifen.

Grüße Uwe

@uwefed
Da muss ich mir wohl am Dienstag so ein
1000uF Kondensator und 330 Ohn Widerstand kaufen.
In den ganzen Video Anleitung war nie ein Widerstand reingelötet und trotzdem lief es.

Danke

Origami:
@uwefed
Da muss ich mir wohl am Dienstag so ein
1000uF Kondensator und 330 Ohn Widerstand kaufen.
In den ganzen Video Anleitung war nie ein Widerstand reingelötet und trotzdem lief es.

Danke

Leider sind die meisten Anleitungen im Web nur auf Einfachheit getrimmt und nicht auf sicheres Funktionieren.

Das erkennen wir immer wieder.

Funktioniert denn dein Led-Stripe jetzt ?

Nee die Strips habe ich nie zum laufen bekommen. Hin und wieder hat nur ein einziges LED in Grün geleuchtet.
Ich habe noch eine 50er Ws2801 Lichterkette die geht immer noch. Ich probiere mal am Dienstag wenn ich mir die Sachen besorgt habe.

Hast du denn auch wie Uwe beschrieben, die erste Led vom Stripe getrennt ?