Ich möchte, dass mein AHK-Skript die Nachrichten vom Arduino Mega empfangen kann. Dies funktioniert auch, aber wenn der Arduino Mega keinen Strom mehr hat oder der PC heruntergefahren wurde, empfange ich nichts mehr.
Wenn ich jedoch die Arduino IDE öffne, den Serial Monitor starte und dann wieder schließe, empfängt mein Skript die Daten vom Arduino Mega.
Meine Frage ist: Was macht der Serial Monitor der Arduino IDE beim Öffnen, und kann ich das irgendwie anders lösen?
Zeige uns, was Du wie angeschlossen hast, welcher MC verwendet wird und welchen Sketch Du verwendest. Setze Deinen Sketch bitte in Codetags. Wie das geht, steht hier.
Für mich ist das eindeutig. Wenn der Mega keine Strom mehr bekommt, kann der auch nichts senden. Und wenn der seine Spannung vom PC bekommt, ist das auch eindeutig.
Ich habe ein Nextion Intelligent Display an den Pins 19 und 18 des Arduino Mega angeschlossen. Mein Code nimmt die Zahl, die das Display sendet, und leitet sie an den PC weiter.
Das ist mein Code
void setup() {
Serial.begin(9600); // Debugging über USB
Serial1.begin(9600); // Nextion Display über Serial1
}
void loop() {
if (Serial1.available()) {
String input = "";
while (Serial1.available()) {
char c = Serial1.read();
input += c;
delay(2); // Kurz warten, um die gesamte Nachricht zu empfangen
}
Serial.println(input);
}
}
Ich meine damit, dass wenn der PC heruntergefahren und dann wieder hochgefahren wird und das AHK-Skript ausgeführt wird, der Arduino Mega nichts empfängt – erst, wenn der Serial Monitor geöffnet und wieder geschlossen wird.
Dann solltest du für den seriellen Empfang vom PC nicht die Schnittstelle für den seriellen Monitor nehmen, sondern eine der weiteren seriellen Schnittstellen, z.B. Serial2.
Darf ich fragen, wo das ominöse "AHK" ausgeführt wird?
Ist das die Empfangsseite auf dem PC oder das gezeigte auf dem Mega oder gar Code auf dem Nextion?
Ich habe noch ein bisschen weiter getüftelt und vermute, dass das Problem PC-seitig liegt, da es mit Tera Term funktioniert hat. Wisst ihr vielleicht, wie man einen Arduino Mega initialisiert?
Mach es wie in Post #12 geschrieben und es funktioniert.
Der serielle Monitor hat da seine Eigenarten, die dir das Problem macht.
Fakt ist, die serielle Schnittstelle ist kein Bus, du kannst da nur 2 Endpunkte nutzen.
So wie du es machen willst, hast du drei (Arduino, AHK und serieller Monitor) Endpunkte.
Und das macht die Probleme.
Ich habe nur zwei Endpunkte das AHK-Skripte und einen Arduino Mega. Ich muss zuerst den Arduino Mega mit dem Serial Monitor initialisieren (währenddessen ist das AHK-Skript geschlossen). Wenn ich den Serial Monitor schließe und das AHK-Skript starte, funktioniert es (zwei Endpunkte: Arduino Mega und AHK-Skript). Aber die Frage ist: Wie initialisiert der Serial Monitor den Arduino?
Das ist wie schon geschrieben, die Eigenart des seriellen Monitors und hängt mit der Nutzung von USB zusammen.
Sorry, aber anders kann ich es nicht beschreiben. Evtl. kommt da noch einer, der eine genaue Beschreibung dafür hat.
Mach es mit der Serial2 und du hast jederzeit die Möglichkeit auch zu debuggen.