2017-01-22 23 views
0

私はシリアルデータ('a')を私のarduinoにpythonを使って送りたいと思っています。シリアルpythonとarduino

Arduinoの上の受信コードは、以下である:

char inChar = (char)Serial.read(); 
if(inChar=='a'){ 
    //do stuff 
} 

charachter 'Arduinoのシリアル端末から、それが動作を送ります。 しかし、Python 2.7(コード参照)から送信すると、rxが点滅しますが、to stuffは実行されません(つまり、inChar=='a'はfalseです)。 私はすべてを試しましたが、私はこの問題を解決できません。

Pyhtonコード:

import serial 
ser = serial.Serial('/dev/ttyUSB0',9600) 
ser.write('a') 

EDITser.write(b'a')

+0

同様の質問が答えている[ここ](http://stackoverflow.com/questions/19143360/python-writing-to-and-reading-from-serial-port)これが役に立っているかどうか確認してください – warl0ck

+0

@ warl0ck投稿を既に読んでいますが、役に立たなかった – black

+1

末尾に 'ser.flush()'を追加するか、 'ser.close()' [link](http:// pyserial.readthedocs.io/en/latest/shortintro.html)を使ってデータが送信されることを確認してください。 – warl0ck

答えて

0

あなたの返信ありがとうございます。しかし、それは私の問題を解決しませんでした。

ほとんどすべての想像を絶する解決策を試した後、私はそれを修正します。 開封の口との間に/の送付/読書の遅れが必要です - 少なくとも私のラズベリーで。

だから、この作品:

import serial 
import time 

ser = serial.Serial('/dev/ttyUSB0',9600) #opening the port 
time.sleep(1) #wait 1s 
ser.write('a') #write to the port 
-1

どちらも動作しませんが、Rxの光を見たときあなたは=>https://github.com/thisroot/firebox

import firebox as fb 

serPort = fb.findDevice('stimulator') 
if(serPort): 
    data = [] 
    data.append("<fire,200,5>") 
    fb.sendMessage(serPort,data) 
+2

これは* spam *のように見えますが、このスレッドの質問に答えたり、質問内の問題を明確に特定したり解決したりすることはできません。回答がどのようにOPの問題を解決するか、彼が特定のケースでどのようにそれを使用できるかについての詳細を提供するように、回答を編集してください。 –

+0

私は詳細を書く時間がありません –

2

ここに私の決定を見ることができます点滅していますが、arduinoはデータを受け取っていないようですが、私は2つのことを確認します:

1)arduinoには、Pythonホストからデータを送信する前に、シリアル通信をセットアップして開始するのに十分な時間があることを確認してください。オンボードLEDがSerial.beginのステートメントの後に点滅し、その後にPythonコードを開始するコードを含めることができます。 (LEDの詳細:how to make the LED blink

2)通信設定が正しいことを確認してください。すべてのパラメータを明示的に設定して、それらが何であるかを知り、それらがケーブルの両端で同じであることを確認することができます。例えば、Arduinoの上:

// set up Serial comm with standard settings 
Serial.begin(9600,SERIAL_8N1); 
Serial.flush(); 

そして、Pythonコードで:

また
bytesize=8 
parity='N' 
stopbits=1 
timeout=3 

ser = serial.Serial(port_name, baudrate=9600, bytesize=bytesize, parity=parity, stopbits=stopbits, timeout=timeout) 

、あなたは、あなたがあなたの通信が設定されていることを知って、PythonのホストへのArduinoからデータを送信できる場合アップは正しいです。

+0

あなたのコメントをいただきありがとうございます。 24時間後に私の答えを見直してもそれほど良いことではありません。(私は終了文字の動作の引用をしていないし、遭遇した同様の問題の私のメモを見直し、私はPythonを使用していない、Javaを使用していた。回答を編集する – mhopeng

+0

いいえ、私のコメントは削除されました。OPの問題を再現できましたか? –

1

は、データをポートに送信されていることを確認するためにlinkからser.write('a')

または

ser.close()

参照した後、最後に

ser.flush()

を追加します。

関連する問題