Kann man aus Setup text auf dem Monitor ausgeben?

Hallo

Ich möchte bereits aus dem "setup" einen Text aus dem Monitor ausgeben,
Leider geht das nicht. Warum?

z.B.

const int led1=7;
const int led2=8;

void setup() {
Serial.begin(19200);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
Serial.print("Beispiel Text");

}

void loop() {
// Mach irgend etwas mit den LEDs:

}

Eben fix getestet (wobei das Ergebnis vorher klar war): dein Code funktioniert.

Eventuell hast du vergessen, in der Konsole die richtige Baudrate einzustellen?

Was für ein Board benutzt du? Auf einem Arduino Uno sollte das gehen, aber bei z.B. einem Leonardo musst du noch vor die ersten Ausgabe ein

while(!Serial);

setzen. Dadurch wird gewartet, bis der serielle Monitor geöffnet ist. Dass du da diese Zeile einfügen musst liegt daran, dass ein Arduino Uno das Programm neu startet, wenn der Monitor geöffnet wird, aber ein Leonardo nicht. So kann es bei einem Leonardo passieren, dass ein Text versendet wird, bevor er überhaupt ankommen kann.
Und, wie Rabenauge gesagt hat, die Baudrate im seriellen Monitor könnte falsch sein, da die Baudrate 19200 relativ exotisch ist (die automatisch eingestellte Rate ist, meine ich, 9600 Baud), in Programmen habe ich bisher eigentlich nur 9600 Baud, 115200 oder 31250 gefunden, das braucht man bei Midi. 19200 sehe ich heute zum ersten Mal in einem Programm.

Hast du komische Zeichen oder einfach nichts bekommen?

Ein bisschen mehr Infos wären ganz nett.

HTML-Fan:
Was für ein Board benutzt du? Auf einem Arduino Uno sollte das gehen, aber bei z.B. einem Leonardo musst du noch vor die ersten Ausgabe ein

while(!Serial);

setzen. Dadurch wird gewartet, bis der serielle Monitor geöffnet ist.

Das bewirkt aber auch, daß ein Leonardo, der nicht an einen PC angeschlossen ist, in der Schleife stecken bleibt.
Ein genügend groß bemessenes delay() ist in diesem Fall besser.

Grüße Uwe

Danke für die schnelle Antwort,
das mit dem

while(!Serial)

war für mich neu, hat aber geholfen.
Der von mir verwendete Arduino Micro macht nun was er soll.

Gruß und schönen Sonntag
Armin

uwefed:
Das bewirkt aber auch, daß ein Leonardo, der nicht an einen PC angeschlossen ist, in der Schleife stecken bleibt.
Ein genügend groß bemessenes delay() ist in diesem Fall besser.

Grüße Uwe

Ich benutze, wenn ich ein Programm für meinem Leonardo-basierten Yún schreibe, lieber sowas wie

#define DEBUG true
void setup(){
  #if DEBUG
  while(!Serial);
  #endif
}

, dann kann man zwischen einem Debug- und einem normalen Modus wechseln. Ich finde das jedenfalls praktischer, wenn ein Programm im normalen Modus direkt starten soll. Ein delay geht auch, aber ich persönlich finde es angenehmen, wenn im seriellen Monitor eine Nachricht direkt beim Öffnen kommt und man nicht erst ein paar Sekunden warten oder das Board neu starten muss.

Du mußt aber das Problem sagen wenn Du while(!Serial) als Lösung anbietest.
Grüße Uwe

Naja, wenn er eine serielle LED-Steuerung bauen will, ist es logisch, dass dazu der Arduino mit dem PC verbunden sein muss. Es kommt also ganz auf das Projekt an. Bei meinem seriellen Text-Advanture habe ich while(!Serial); benutzt, bei meinem Display-Advanture (Das Gleiche, nur für ein OLED) habe ich das #if DEBUG genommen.