Arduino mit mehr Speicher?

Ich stoße bei meinem Progamm an die Grenze der max. GlobalenVariablen (Arduino UNO). Die Funktion ist gestört. Welche Arduino mit größeren Dynamischen Speicher gibt es? Danke für einen Hinweis. Rüdiger

stell einfach in der ide auf einen anderen arduino um und lass den sketch kompilieren. oder frag google nach arduino specs.

Mega2560 und viele andere. Suche Dir den für Deine Anwendung passenden raus.

Bist Du sicher, daß Du all diese Variablen brauchst?
Grüße Uwe

Hi,

die SD.h nimmt sich ~ 60% des verwendbaren RAMs, dann muss man mit dem Rest sparsam umgehen, z.Bsp. mit dem F-Makro bei den xx.println, oder tatsächlich einen anderen Controler nehmen.

Gruß André

Danke, mit dem Mega_2560 geht es locker.
"Hier werden Sie geholfen"

Greyhaired:
Danke, mit dem Mega_2560 geht es locker.
"Hier werden Sie geholfen"

Warum postest Du Text nicht als Text, sondern als Bild?

Moder sich überlegt hat die Frage als Bild zu postenko

Angesichts deiner anderen Frage hier gehst du wahrscheinlich sehr verschwenderisch mit dem Speicher um. Gerade durch den Verzicht auf String Objekte und konsequente Verwendung von F()-Makro, PSTR(), _P Funktionen für C Strings und PROGMEM kann man da einiges sparen

Ich verwende zwei Strings. Jeder mir 45 Dateinahmen (je 5 Zeichen) , die ich in einer Schleife abfrage.
(wenn es denn mal funktioniert).

Problem: ich möchte in 'char filename[13]' an drei Positionen drei einzelne Zeichen ersetzen, die wieder Teile eines Strings sind ( String wavedatei[] ) . Ich probiere weiter.

Danke+Gruß Rüdiger R.

Auch von mir den Tipp:
Vergesse die String Klasse!

Und ok, wenn du den Code nicht zeigen möchtest, auch gut.
Dann bleibts dabei: Nimm einen Mega!

Den Unterschied zwischen String und String[] scheinst du auch noch nicht verstanden zu haben

Ein String Objekt belegt übrigens 6 Bytes ohne dass da überhaupt mal ein lesbares Zeichen drin steht. Zwei Bytes für einen Zeiger auf einen C String. Zwei Bytes für die aktuelle Länge und zwei Bytes für die maximale Länge (Kapazität)

Das "Platzproblem" habe ich mit dem Mega2560 gelöst. Allerdings, die unterschiedlichen StringVarianten habe ich nicht verstanden. ( Dafür ist es wohl auch zu spät. Wie ich früher schon mal schrieb, ich werde 78. Das Thema Arduino ist für mich eine Freizeitbeschäftigung im Winter )

Beispielsweise, wie oben im Text beschrieben (laienhaft) :

copy(filename[5], wavedatei[1]); // filename[13] ist char, wavedatei[] ist String
copy(filename[6], wavedatei[2]);
copy(filename[7], wavedatei[3]);

Ein guter Rat wäre hilfreich für mich.
Rüdiger R.

Greyhaired:
ich werde 78

Ich kann dir zwar nicht helfen, aber meinen Respekt hast du.

Evtl. kann Dir diese Kurzzusammenfassung helfen.

Gruß Tommy

eine Freizeitbeschäftigung im Winter

Da bietet es sich direkt an, sich damit mal zu beschäftigen. ( Es geht besser ohne String-Objekte )

Das wirklich interessante an Arduino ist doch, dass man ziemlich viel mit nur wenig Ressourcen hinkriegt.
Und mit 2k RAM eine SD-Card im Griff haben, ist doch eine hübsche Herausforderung.

michael_x:
Das wirklich interessante an Arduino ist doch, dass man ziemlich viel mit nur wenig Ressourcen hinkriegt.
Und mit 2k RAM eine SD-Card im Griff haben, ist doch eine hübsche Herausforderung.

nee, das wirklich Interessante an Arduino ist, dass man passend zum Projekt verschiedene Boards zur Verfügung hat, vom klitzekleinen AVR über einen etwas größeren AVR über kleinen ARM Cortex M0 und esp8266 über M3 und ESP32 bis hin zum M4 mit fpu -
und alle laufen mit den gleichen Programmen in der selben IDE!

Hi

Denke auch, daß hier der Zweck die Mittel heiligt und es ja eben verschieden 'fette' Arduinos gibt, Die man 'statt dem 'Kleinen' einfach in der IDE anwählen kann - einen Klick später ist das gleiche Programm auf der anderen Hardware lauffähig.

Wenn man aber nicht für jeden SKetch, Der über 10 Zeilen lang wird, einen Mega verwenden möchte (oder was mit ARM), schadet Es nicht, Sich über die Nachteile von 'normalen' Strings klar zu werden.

Wenn's Einen dann gepackt hat, kann man aber auch noch in Assembler (geht ach irgendwie inline - hab's noch nicht 'geblickt') die 32 Register des AVR einzeln verarzten und Takte zählen, damit das Timing für die WS2812B stimmt.
(habe selber laienhaft autodidaktisch mit Assembler angefangen und bin immer noch durchaus fasziniert von dieser Sprache)

MfG

@ Tommy56 : Danke für die kurze Zusammenfassung "Zeichenketten in C". Habe gelesen und gedacht, ich habe verstanden. Dann mich wieder an meinen Progrämmchen versucht und gemerkt: nichts verstanden.
Stundenlages "try and Error", aber nun funktioniert es. Danke !
Rüdiger R.

Eine schöne Alternative zu den "klassischen" Arduinos sind die Chips mit ESP8266, z.B. die Wemos-Baureihe. Mit ein par kleinen Ergänzungen können die in der Arduino-IDE progammiert werden. Die Anzahl der IO-Pins ist etwas reduziert, dagegen hat man aber (für Arduino-Verhältnisse) nahezu astronomische Speichermengen zur Verfügung ...

Greyhaired:
@ Tommy56 : Danke für die kurze Zusammenfassung "Zeichenketten in C". Habe gelesen und gedacht, ich habe verstanden. Dann mich wieder an meinen Progrämmchen versucht und gemerkt: nichts verstanden.
Stundenlages "try and Error", aber nun funktioniert es. Danke !
Rüdiger R.

Schön, wenn es Dir geholfen hat. Wenn es einmal "drin" ist im Oberstübchen (also wirklich verstanden ist), ist es einfach zu nutzen.

Gruß Tommy