if (Serial.available()) {
char Eingabe = Serial.read();
if (Eingabe == 'e')
{
digitalWrite(LED_BUILTIN, HIGH);
Serial.println("Die LED wurde eingeschaltet");
}
if (Eingabe == 'a')
{
digitalWrite(LED_BUILTIN,LOW);
Serial.println("Die LED wurde ausgeschaltet");
}
}
}
Der Sketch funktioniert auch, aber im Terminalfenster wird mir zu Beginn jedesmal eine willkürliche Zeichenfolge angezeigt:
Kann mir bitte wer sagen was daran schuld ist?
Die Baud-Rate ist korrekt eingestellt, hat daher mein MEGA260 R3 einen Fehler?
Was für ein Kompendium meinst Du? Irgendwas im Internet?
Hilfreich wären noch folgende Infos: Welches Betriebssystem benutzt Du? Erscheinen Fehlermeldungen (welche?), wenn Du alle Meldungen aktiviert hast (siehe Voreinstellungen)?
gregorss:
Was für ein Kompendium meinst Du? Irgendwas im Internet?
Hilfreich wären noch folgende Infos: Welches Betriebssystem benutzt Du? Erscheinen Fehlermeldungen (welche?), wenn Du alle Meldungen aktiviert hast (siehe Voreinstellungen)?
Gruß
Gregor
Hallo Gregor,
ich verwende das Arduino Kompendium aus dem BMU Verlag von Danny Schreiter und als OS benutze ich Windows 10 Enterprise Insider. @noiasca
Danke, aber die Erklärung "das ist halt so" reicht mir nicht! Ich habe dieses Verhalten bis dato bei keinem anderen User gesehen, daher würde mich schon interessieren was die Ursache dafür ist.
LG
Franz-Georg
Wenn ich mir Deinen Sketch ansehe, kann auch ich mir keinen Reim auf das Verhalten machen. Meiner Erfahrung nach sind zumindest die Originale sehr zuverlässig und robust. Wie sieht's mit Fehlermeldungen aus?
Ich verwende den MEGA von ELEGOO, bekomme aber im Laufe der Woche auch den MEGA 2650 von Arduino. Mal schauen ob sich da vielleicht ein anderes Bild ergibt.
Habe jetzt mit einem Nano denselben Sketch ausprobiert und siehe da, keinerlei wirre Zeichen.
Es scheint also tatsächlich am MEGA von ELEGOO zu liegen. Anscheinend hat hier der Bootloader eine Macke.
Es sieht, meiner Meinung nach, so aus, als würde der Arduino anfangen, die Startmeldung nach dem Reset durchs Öffnen des seriellen Monitors auszuspucken und dann aus mir nicht erfindlichen Gründen, während er eigentlich jene Meldung ausspuckt, nochmal resettet werden, wodurch er die Startmeldung erneut von Anfang an ausspuckt, diesmal ohne Unterbrechung und daher vollständig. Versuche mal, bei deinem Programm ein Delay von 20 ms einzubauen, also:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
delay(20);
Serial.println("");
Serial.println("### LED-Steuerung ###");
Serial.println("e: einschalten / a: ausschalten");
}
void loop() {
if (Serial.available()) {
char Eingabe = Serial.read();
if (Eingabe == 'e')
{
digitalWrite(LED_BUILTIN, HIGH);
Serial.println("Die LED wurde eingeschaltet");
}
if (Eingabe == 'a')
{
digitalWrite(LED_BUILTIN,LOW);
Serial.println("Die LED wurde ausgeschaltet");
}
}
}
Dadurch wartet der Mega nach dem Reset erstmal 20 ms lang ab, um zu gucken, ob er erneut resettet wird. Wahrscheinlich reichen schon 5 ms, aber so bist du auf der sicheren Seite. Viel Glück beim Testen und Ausprobieren!