Forum: Mikrocontroller und Digitale Elektronik Arduino - Serial.readline() funktioniert nur in der Pythonkonsole


von Tristan S. (reacher)


Lesenswert?

Arduino - Serial.readline() funktioniert nur in der Pythonkonsole?!

wenn ich folgenden Code in die Pythonkonsole eingebe, kommt immer wie 
erwartet "Hello world" (welches mein Arduino schickt):

import serial

ser = serial.Serial('/dev/ttyACM0', 9600)
while 1 :
    ser.readline()


Wenn ich das ganze z.B. in Eclipse mit PyDev ausführe, kommt keine 
Ausgabe.
Das Programm startet und zeigt nichts an.
Woran liegt das?
Wie kann man das ändern?

Gruß Tristan

von Kaj (Gast)


Lesenswert?

Tristan S. schrieb:
> Woran liegt das?
Vielleicht wird bei Eclipse der controller nicht resetet, so das du ewig 
auf dein "Hello World" warten kannst, aber niemals bekommen wirst, weils 
schon lange vorbei ist.

Tristan S. schrieb:
> Wie kann man das ändern?
Per Python den Controller zu einem Reset zwingen
Versuch mal:

ser = serial.Serial('/dev/ttyACM0', 9600)
ser.setDTR(false)
sleep(1) # warte eine Sekunde
ser.setDTR(true)
sleep(1) # warte eine Sekunde
while 1 :
   ser.readline()

Die sleeps sind damit der Bootloader auf dem Arduino durchlaufen kann.
Vielleicht musst du die beiden setDTR() auch tauschen, also erst true 
und dann auf false setzen. Musst du mal ausprobieren.


Aber abgesehen davon:
Tristan S. schrieb:
> import serial
>
> ser = serial.Serial('/dev/ttyACM0', 9600)
> while 1 :
>     ser.readline()
>
> Wenn ich das ganze z.B. in Eclipse mit PyDev ausführe, kommt keine
> Ausgabe.
Jo, du machst da ja auch nirgends eine Ausgabe! Ergo kannst du auch 
nichts sehen...

Grüße

von Tristan S. (reacher)


Lesenswert?

Vielen Dank...
Ich habe vor lauter Bäumen den Wald nicht gesehen.
XD
Natürlich sollte man eine Ausgabe machen um etwas zu sehen.

von Hans (Gast)


Lesenswert?

Wenn du keine Ausgabe gemacht hast, warum hast du in der "Konsole" dann 
etwas empfangen?

von Tristan S. (reacher)


Lesenswert?

Weiß ich ehrlich gesagt nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.