ARDUINO NANO zu wenig Programmspeicherplatz

ein wunderschönen guten tag :slight_smile:

ich lese seit ein paar wochen hier im forum mit. der grund..
weil ich einfach nicht weiter komme mit meinem Arduino NANO und ein absoluter anfänger in diesem bereich bin. ich habe mich hier angemeldet um diesen thread erstellen zu können bzw. mit euch profis in kontakt zu kommen, in der hoffnung, dass ihr mir weiterhelfen könnt.

ich habe 4 neopixel die ich ansteuern möchte und bei mir scheitert es schon beim sketch, also beim sketch nicht direkt. das programm sagt das alles passt. nur der arduino hat zu wenig speicher dafür. was ich schon ein wenig weiß, dass ich es in den flashspeicher packen soll (F makro) habe ich auch schon oft gelesen. mein problem ist, ich weiß nicht welche codes ich eingeben soll bzw. in welche zeile was kommt vor dem loop oder nach dem loop #include #define.

ich würde mich wirklich sehr freuen wenn es hier jemand gibt der mir weiterhelfen kann.

Deine Texte:

.println("TEST")

kannst du einfach in mit F() erweitern:

.println(F("TEST"))

Du hast ein RAM Problem. Mit Programmspeicher ist normal eher Flash gemeint

Ganz unten. F() geht mit String Literalen bei print(). Das wird bei LEDs eher nicht dein Problem sein. Es sei denn du machst noch andere Sachen von denen du nichts sagst.
Diese intelligenten LEDs sind aber nicht gerade RAM freundlich. Für eine LED brauchst du 3 Bytes RAM. Eins pro Farbe. Und daran kann man auch nichts ändern

Hi

Wobei mir RAM-Probleme bei 4 (VIER) NeoPixel doch schon etwas seltsam vorkommen - ab 300 wird Das langsam interessant (wenn's in dem Sketch primär um die Pixel geht, klar).

MfG

Gib uns mal Deinen Sketch.
Grüße Uwe

das ist was ich geschrieben habe.

#include <FastLED.h>

#define NUM_LEDS 4
#define LED_PIN 6 

CRGB led[NUM_LEDS];

void setup() {

FastLED.addLeds<NEOPIXEL, LED_PIN>(led, NUM_LEDS);

for (int i = 0; i < NUM_LEDS; i++)  {
led[i] = CRGB(0, 0, 255);
}

FastLED.show();

}


void setBlue(int val) {
for (int i = 0; i < NUM_LEDS; i++) {
led[i] = CRGB(0, 0, val);
}

FastLED.show();
}

void loop() {
for (int i = 255; i > 0; i--) {
setBlue(i);
delay(10);
}

for (int i = 0; i < 256; i++) {
setBlue(i);
delay(10);
}
}

Der Sketch verwendet 3628 Bytes (11%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 109 Bytes (5%) des dynamischen Speichers, 1939 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

Wie kommst du dann darauf dass du zu wenig Speicher hast?

@TO: Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

er lädt es nicht auf mein arduino Serenifly. also muss da was nicht stimmen und Tommy ich verstehe leider nur Bahnhof..

Tommy kannst du mir eine Zeile schreiben wie die asusehen soll aus den codes die ich oben gepostet habe? ansonsten verstehe ich es nicht wo den +code und die </> setzen soll. wie geschrieben ich bin absoluter neueinsteiger was die ebene hier betrifft. ^^

glumanda:
also muss da was nicht stimmen

Aber nicht das was du denkst. Mit dem Speicher bist du da völlig auf dem Holzweg. Und wie wäre es mit der Fehlermeldung die du bekommst?

@TO: Lies Dir die Erklärung noch mal in Ruhe durch. Wenn Du mit deren Verständnis schon überfordert bist, solltest Du überlegen, ob Du das richtige Hobby gewählt hast.

Gruß Tommy

Wie wichtig die Code-Tags sind, sollte dir auffallen, wenn Du deinen Post nochmal genau anschaust. Da hat die Forumsoftware nämlich ein [ i ] als Formatierzeichen interpretiert und statt es anzuzeigen, auf Schrägschrift umgeschaltet.
Editier deinen Post nochmal ( nicht 'Quick Edit', sondern 'Modify' in dem dropDown Menue daneben ) markier deinen kompletten Code und drücke dann oben links auf den Button </>.

Am Speicher liegen deine Probleme jedenfalls nicht, wie die Meldung zeigt, die Du gepostet hast. Was für einen Nano hast Du denn? Vielleicht musst Du nur in der IDE unter 'Processor' den 'Old BootLoader' auswählen.

Serenifly ist das keine Fehlermeldung?

Der Sketch verwendet 3628 Bytes (11%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 109 Bytes (5%) des dynamischen Speichers, 1939 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

Tommy ich denke das habe ich ^^ mein herz brennt danach und ich will das unbediengt auch können/verstehen weil ich ganz ganz viele projekte schon damit plane :wink:

Nein. Das ist nur Information wie viel Speicher du belegst.

Nein, das ist keine Fehlermeldung. Im Gegenteil, das ist eine Meldung, dass das Compilieren funktioniert hat, und ein Hinweis auf den verwendeten Speicher. Wobei im Ram auch Speicher verbraucht wird, der hier nicht angezeigt wird. Der landet dann in den '1939 Bytes für lokale Variablen'. Vieviel das ist, kann man aber aus der Meldung nicht ersehen.

Warum hast Du deinen Code jetzt komplett gelöscht, anstatt das so zu markieren wie ich geschrieben habe?

P.S. Ok, Serenifly war schneller :wink:

Beim Hochladen des Sketches ist ein Fehler aufgetreten
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

hier ist die Fehlermeldung ^^

Hast Du das mit dem 'Old Bootloader' versucht?

Mit "Old Bootloader" ist folgende Einstellung gemeint:

Board: "Arduino Nano"
Prozessor: "ATmega328P (Old Bootloader)"

nano_old_bootloader.png

nano_old_bootloader.png

glumanda:
Tommy kannst du mir eine Zeile schreiben wie die asusehen soll aus den codes die ich oben gepostet habe?

Es sollte so im Editor aussehen:

#include <FastLED.h>

#define NUM_LEDS 4
#define LED_PIN 6

CRGB led[NUM_LEDS];

void setup() {

FastLED.addLeds<NEOPIXEL, LED_PIN>(led, NUM_LEDS);
...

ich habe es unter AT328P

und

ATmega328P (Old Bootloader)

versucht.

ich habe drei Arduino's bei ebay gekauft und zwar diese hier.

https://www.ebay.de/itm/3x-Nano-ATmega328-V3-1-Board-Arduino-Kompatibel-5V-CH340G-USB-Chip/252852557403?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2648

ich denke das sind Clone, deswegen muss ich den alten Bootloader nehmen den ich eingestellt habe.