2016-05-13 18 views
2

私はラズベリーパイからArduino UnoにUSBで接続した番号を送信しようとしています。私はthisのチュートリアルをたどってきましたが、これはかなり簡単です。USBケーブルを使ってRaspberry PiからArduinoにメッセージを送信するには

私はArduinoが接続されているポートを見つけることができ、Arduinoがシリアルポート(何か)を介して何かを受信するたびに、デフォルトのLEDを数回点滅させるようにコードを書いています。問題はそれが何も受け取らないということです。

私がラズベリーからPythonスクリプトを実行すると、arduinoのLEDが無作為に点滅します(ちょうど電源に接続されているように)が、停止して何も起こりません。 Pythonのコードですが

void setup() { 
    Serial.begin(9600); 
    pinMode(13, OUTPUT); 
} 

void loop() { 
if (Serial.available() > 0) { 
    blinkLED(3); 
    } 
} 

void blinkLED(int count) { 
    for (int i=0; i< count; i++) { 
    digitalWrite(13, HIGH); 
    delay(1000); 
    digitalWrite(13, LOW); 
    delay(1000); 
    } 
} 

::私は間違って何をやっている

import serial 
ser = serial.Serial('/dev/ttyACM0', 9600) 
ser.write('3') 

コードはこれですか?

+0

:パワー、Rxは、Txが、または13あなたは、単にないパワーLEDライトアップでArduinoのを接続すると? –

+0

申し訳ありませんが、デフォルトでは私はLED 13を意味しました。しかし、私が間違っていることを発見したので、 – Beriol

答えて

1

私はこの問題を発見しました。基本的に私はPythonからポートを開いたときArduino自体をリセットしたので、ポートが開かれた後に送信していたものはArduinoによって破棄されました(まだリセットされていたので)。

ポートを開いた後に単にスリープ状態を追加するだけで解決しました。その間にArduinoはリセットを完了します。

Pythonのコードは次のようになります。

LEDが点滅し、「デフォルト」
import serial 
import time 
ser = serial.Serial('/dev/ttyACM0', 9600) 
time.sleep(5) 
ser.write('3') 
関連する問題