boxtec Forum
Microcontroller => Arduino General => : MathiasW June 15, 2012, 06:02:32 PM
-
Salut,
wenn ich den Serial Monitor öffne, wird der Arduino resettet. Das gleiche geschiet, wenn ich den Serial Monitor am PC schliesse. Gibt es eine Möglichkeit, dies zu umgehen oder muss ich meine Daten im EEPROM sichern?
Hintergrund: Ich habe für mein ITead LCD eine WortUhr geschrieben, welche ich über die Serielle Schnittstelle stelle. Danach soll sie auf normaler externer Stromversorgung laufen und ich möchte das serielle Kabel abziehen. Leider wird dabei die Uhr wieder auf 0:00:00 gesetzt.
[Update] Ich habe in der Hardwarebeschreibung vom Arduino gelesen, dass das eine Feature vom Arduino ist und nur beim Leonardo kein Reset ausgelöst wird, wenn man die serielle Verbindung löst. Das liegt anscheinend daran, dass beim Leonardo USB und CPU vereint sind. Dafür muss man beim Leonardo darauf warten, dass die Serielle Schnittstelle bereit ist while (!Serial), wenn man will, dass alle Meldungen auch auf dem Seriellen Monitor erscheinen
Ciao, Mathias
-
Hallo Mathias,
Der Reset passiert wenn das DTR Signal beim Verbinden oder Trennen des Terminals auf Low gezogen wird. Dies wird von der Arduino IDE verwendet um den Bootloader kurz zu aktivieren vor einem Upload.
Die folgenden Abhilfen/Workarounds sind mir bekannt dazu:
- Auftrennen der Reset Leitung auf dem Board (es besteht da eine extra dazu vorgesehene Stelle, mehr in der Arduino Page (http://arduino.cc/en/Main/ArduinoBoardUno)
- Disablen des DTR im Terminal Programm (AFAIK nicht möglich mit derm Arduin IDE Terminal)
- Verwenden von Softserial auf anderen Pins als 0 und 1 (mit z.B. einem MAX232 Baustein oder einem einfachen USB TTL Adapter, dieser hier (http://shop.boxtec.ch/product_info.php/products_id/40331) hat z.B. gar keine DTR Line)
- Disablen des Auto-Reset mit einem 120Ohm Widerstand (Duemilanove) (http://arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection) oder einem 10uF Kondensator zwischen GND und Reset (http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1295386772)
Ich hab mich bei meinem damaligen Problem mit einem MAX232 beholfen, ein grosser Vorteil einer echten seriellen Leitung ist, dass diese weit über 5m reicht, wogegen USB nach ziemlich genau 5m aufhört u funktionieren, da die Signalüberlagerung wegen dem engen Timing zu hoch wird.
Hoffe davon hilft Dir etwas weiter.
Cheers,
Christoph