Benötige Hilfe: MAX7219 soll Text von Serieller Eingabe anzeigen

Hallo! Ich benötige Hilfe bei diesem Skript. Ich programmiere erst seit wenigen Wochen, wodurch ich den Fehler nicht verstehe. Kann mir Jemand helfen? Danke im Voraus!

Der Skript:

int incomingByte = 0; 
#include "simple_matrix.h" 


simpleMatrix disp(4, true);


const char text[] PROGMEM = "TEXT";
#define textDelay 25

void setup() {
  Serial.begin(9600); 
    disp.begin();
  disp.setIntensity(0x05);
}


void loop() {
    if (Serial.available() > 0) {
        incomingByte = Serial.read();
        Serial.print("I received: ");
    Serial.println(incomingByte, DEC);
  }
  const char text[] PROGMEM = (incomingByte, DEC);
    disp.scrollTextPROGMEMRightToLeft(text, textDelay);
    delay(1000);

}

Welchen Fehler verstehst Du nicht?

Gruß Tommy

Ich habe in der Arduino IDE in Zeile 24 einen Fehler:

arduino_modified_sketch_507885\sketch_dec04b.ino: In function 'void loop()':

sketch_dec04b:24:44: error: initializer fails to determine size of 'text'

   const char text[] PROGMEM = (incomingByte, DEC);

                               ~~~~~~~~~~~~~^~~~~~

sketch_dec04b:24:44: error: array must be initialized with a brace-enclosed initializer

exit status 1

initializer fails to determine size of 'text'


welche Library genau?
Funktioniert der Beispielssketch der Library?

warum willst du den Text den du einliest zur Laufzeit ins PROGMEM geben? macht doch keinen Sinn oder? Halte die Daten im RAM und gut ist.

Die Library heißt im Arduino Bibliotheksverwalter "Simple LED Matrix".
Das Beispielprogramm funktioniert, es ist ein bisschen mit der https://www.arduino.cc/reference/de/language/functions/communication/serial/read/ Seite umgeschrieben. Ansonsten habe ich nicht viel geändert.

Ich habe einfach ein bisschen Copy Paste angewendet, in der Hoffnung, dass was Sinnvolles bei rauskommt...

Du kannst im PROGMEM nicht schreiben, sondern nur konstante Texte zur Compilezeit ablegen. incommingByte ist ja ein veränderlicher Wert zur Laufzeit.

Gruß Tommy

link aus der Lib geht nicht.

Ist es diese?

Genau

OK. Danke. Wusste ich nicht.

schau mals ins Train Example.

Da gibts ein

disp.scrollText("CHOOO CHOOO !!!", TEXT_DELAY);

imho musst du dir noch etwas gedanken machen wie das genau ablaufen soll.

Also z.B. einen GANZEN TEXT einlesen, mit CR/LF abschließen und wenn der ganze Text gelesen ist, erst dann ans Display schicken.

OK. Kann ich damit den Text von der Seriellen Eingabe schreiben?

lies mal

das erklärt die Basics.
Du brauchst die hereingekommen daten nicht analysieren oder zerteilen. Einfach weitersenden ans Display - WENN DIE ÜBERTRAGUNG FERTIG IST.

Dankeschön!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.