String kette erzeugen

An response habe ich nichts geändert:

char c = Serial.read();

Heißt halt anders, aber der Typ ist gleich

Zu dem anderen. Arrays sind lediglich etwas mehr Syntax für Zeiger. Ein Array ist ein Zeiger auf die erste Position. Wenn du das hast

char text[81];

ist text ein char*. Ein Zeiger auf eine char. Eine andere Schreibweise wäre &text[0]. Die Adresse des Inhalts der ersten Zelle.

Wenn man als ein Array an eine Funktion übergeben will, übergibt man einen char*. Wenn man dann die Array Variable übergibt, wird nur die Adresse des ersten Werts an die Funktion übergeben.

Und wenn man einen Verweis auf das Array speichern will nimmt man auch einen char*. char* strPtr ist lediglich ein Zeiger auf das Array, das in der Funktion steht. Deshalb der Name strPtr -> string pointer

Umgekehrt geht es aber nicht! Du kannst in diesem Fall nicht einfach nur einen char* deklarieren und ihn wie ein Array behandeln, da kein Speicher dafür festgelegt ist.

Ich kann gut verstehen, dass ich dich hier mit viel Informationen überschütte, aber diese Grundlagen musst du verstehen. Damit hast du immer wieder zu tun. Der Unterschied zwischen char, char[] und char* muss dir klar sein.

BITTE sag mir einfach wo ich was hinsetzen soll damit es nicht zwischen meine Variablen knallt

Ich sehe im Moment nicht wo genau der Fehler auftritt. Normalerweise steht bei Fehlern die Zeilennummer dabei. Die stimmt nicht immer, da Fehler auch kaskadieren können und dann der Compiler durcheinander kommt, aber dadurch kann man i.d.R. die fehlerhafte Zeile ermitteln.

Die Arduino IDE zeigt dir wiederum ganz unten links die Zeilennummer an, wenn du auf eine Zeile klickst. Dadurch ist man dann beim fehlerhaften Code.

Zwei andere Sachen:

Dein 10 Sekunden Delay in loop() macht meine Version zunichte! Mach das mit millis() wie im BlinkWithoutDelay Beispiel. Dann wird ein Teil zeit-gesteuert ausgeführt, aber ein anderer Teil kann ständig laufen.

Dann was ich dir auch schon mal gesagt habe:
Strings müssen unbedingt am Ende mit 0 terminiert werden! Wenn der String ganz da ist musst du das machen:

text[charcount] = 0;

Oder

text[charcount] = '\0';

Das geht im Moment auch so, weil das Array durch das static mit 0 initialisiert ist. Aber wenn z.B. mal Strings unterschiedlicher Länge ankommen bekommst du Probleme.