2017-09-06 3 views
0

私はPythonスクリプトを書いています。これはArduinoに文字を送り、Arduinoは受け取った文字を戻します。しかし、この場合、Arduinoは常にガベージ・バリューを与えています。また、Pythonスクリプトの実行中にエラーは発生しません。Python serial.write()はシリアルデータをArduinoに送信しません

私は複数のブログ、記事、チュートリアルをチェックし、正確な手順に従っていますが、解決策はありません。

これは私のPythonスクリプトです:

import serial 
ser = serial.Serial("/dev/ttyACM0",9600) 
ser.write('8') 
read=ser.readline() 
print(read) 

これは、Arduinoのコードです:

int temp; 
void setup() { 
    Serial.begin(9600); 
    temp=5; 
} 

void loop() { 
    temp=Serial.read(); 
    Serial.println(temp); 
    delay(1000); 
} 

Arduinoのは、常に印刷し-1応じて。

答えて

2

Serial.read()に関するドキュメント:使用可能な入力シリアルデータの

戻り

最初のバイト(または-1使用可能なデータがない場合) - int型

Ivan Sheigetsさんが提案したように、

void setup() { 
    Serial.begin(9600); 
    Serial.print("You sent: "); 
} 

void loop() { 
    int temp=Serial.read(); 
    if(temp>=0) 
    Serial.print((char)temp); 
} 

入力値を必ず(char)tempにキャストしてください。

1

Serial.available()を追加する必要があります。

void loop() 
{ 
    if (Serial.available() > 0) 
    { 
     temp=Serial.read(); 
     Serial.print(" I received:"); 
     Serial.println(temp); 
    } 
} 
関連する問題