2016-04-21 11 views
1

Ich sende eine ganze Zahl von Python mit PySerial.Arduino Serielle Programmierung Problem

import serial 
ser = serial.Serial('/dev/cu.usbmodem1421', 9600); 
ser.write(b'5'); 

Wenn ich kompilieren, LED der Empfänger auf Arduino blinks.However ich überprüfen überqueren wollen, wenn die ganze Zahl von Arduino empfangen wird. Ich kann Serial.println() nicht verwenden, da der Port ausgelastet ist. Ich kann Serial Monitor nicht zuerst auf Arduino ausführen und dann das Python-Skript ausführen, da der Port ausgelastet ist. Wie kann ich das erreichen?

Antwort

0

Sie könnten auf die Antwort des Arduino mit etwas zusätzlichem Code hören.

import serial 
ser = serial.Serial('/dev/cu.usbmodem1421', 9600); # timeout after a second 

while ser.isOpen(): 
    try: 
     ser.write(b'5'); 
     while not ser.inWaiting(): # wait till something's received 
      pass 
     print(str(ser.read(), encoding='ascii')) #decode and print 
    except KeyboardInterrupt: # close the port with ctrl+c 
     ser.close() 

Verwenden Serial.print() zu drucken, was die Arduino an die serielle Schnittstelle empfängt, wo Ihr Python-Code auch zuhört.

0

Sie können ein Arduino-Programm hochladen, das auf diese bestimmte Ganzzahl wartet und das Licht nur blinkt, wenn es int erreicht wird.