arduino reset nach Befehlüber serielle Schnitte (USB)

Hi,

wenn ich einen (egal welchen) Befehl vom Python Skript zum Arduino schicke (USB) führt er einen Reset durch... Ich habe bereits einen 120 OHM Widerstand zwischen 5V und reset gepackt...

Woran liegt das und wie kann ich das verhindern? Sollte ich besser an die Pins für den UART gehen?!

MfH

Kornfeld:
Hi,

wenn ich einen (egal welchen) Befehl vom Python Skript zum Arduino schicke (USB) führt er einen Reset durch... Ich habe bereits einen 120 OHM Widerstand zwischen 5V und reset gepackt...

Woran liegt das und wie kann ich das verhindern? Sollte ich besser an die Pins für den UART gehen?!

MfH

Das ist so gewollt.
Wenn der Arduino eine Aktion an der USB-Schnittstelle erkennt, macht er einen Reset. Wichtig für das Flashen des Atmegas. Passiert auch wenn du den SerialMonitor startest.

Das mit der UART wird nicht gehen, da die von der USB-Schnittstelle belegt wird.

Du beim UNO kannst SoftSerial verwenden, beim MEGA gibt es noch 2 weitere UART.

Der Fehler befindet sich in Zeile 42 in deinem Python Skript!!
Du musst die Schnittstelle offen halten, damit es nicht zu einem Reset kommt.

Ah okay... also muss ic den die ganze zeit blocken...das ist aber nicht schon, da ich mir am ende gerne noch eine antwort oder ende schicken lassen würde. und das ohne reset..

dann werde ich da wohl auf den mega wechseln müssen..

dann werde ich da wohl auf den mega wechseln müssen..

Was ist da anders?

Der Reset kannst du verhindern:

  1. mit 120 Ohm zwischen Reset und Vcc (tuts bei dir nicht, ka warum)
  2. Elko 10 bis 100 µF zwischen Reset und Vcc
  3. Durchkratzen der Reset Lötbrücke (Uno, Mega, u.v.m.)

Was hat das ganze mit blocken? Denke du hast dein Python Prog (vermutlich Raspberry?) falsch aufgebaut.
Das kompilierte Programm muss die ganze Zeit aktiv bleiben, muss aber nichts machen (belegt somit auch kaum Ressourcen). Nur ab und zu etwas schicken und empfangen. Bislang machst du jedesmal eine erneute Initialisierung.

Von Combies Checkliste, Punkt 1 + 2 habe ich nie benutzt. Das durchschneiden der Leiterbahn habe ich bereits auf allen Unos gemacht udn funktioniert.

Aber ansonsten stehen die ganzen Informationen auf der Produktseite des Arduino/Genuino Unos!!

Bei meinem Original Arduino UNO R3 hat das mit dem 120 Ohm Widerstand auch nicht geklapppt.
Mit dem Elko aber schon.
Nach dem Durchkratzen musst du halt zum Upload den Reset drücken (oder die durchgekratzte Verbindung wieder brücken.)

Manche Terminal-Programme kann man so einstellen, dass sie beim Belegen/Trennen der Verbindung das DTR Signal in Ruhe lassen. Dann gibts keinen Reset. (Beim Arduino SerialMonitor geht das nicht, bei hterm oder dem visualmicro SerialMonitor gehts, bei deinem python weiss ich nicht).

Danke für eure Antworten.. Ich hatte es zuerst mit dem Widerstand probiert.. das hat nicht funktioniert...

Ich habe jetzt einen 100µF Elko drin.. Das funktioniert und damit auch das Programm.

MfG

Was hat das ganze mit blocken? Denke du hast dein Python Prog (vermutlich Raspberry?) falsch aufgebaut.
Das kompilierte Programm muss die ganze Zeit aktiv bleiben, muss aber nichts machen (belegt somit auch kaum Ressourcen). Nur ab und zu etwas schicken und empfangen. Bislang machst du jedesmal eine erneute Initialisierung.

Wenn der Port geöffnet ist ist der auch die ganze Zeit reserviert..?! Somit kann ich dann nichts schicken.. Das Programm ist so noch relativ leer... Jetzt sollen ja noch bestimmte Aktionen ausgeführt werden bei den jeweiligen Befehlen.. Es scheiterte durch diesen Reset ab schlicht und einfach schon bei der Kommunikation.

Bei dem Mega gehst du dann einfach auf Serial1 und/ oder 2 und umgehst diese Geschichte, da diese nicht für den Upload genutzt werden.