2016-05-13 133 views
2

我試圖從Raspberry Pi發送一個數字給Arduino Uno通過USB連接。我遵循this教程,這非常簡單。如何通過USB數據線從Raspberry Pi發送消息到Arduino

我可以找到與Arduino連接的端口,並且我編寫了代碼,以便無論Arduino何時通過串口接收到任何東西,它都會默認閃爍幾次。問題是它從來沒有收到任何東西。

當我從樹莓中運行python腳本時,arduino上的led會隨機閃爍(就像它剛剛連接到電源上),但隨後它停止並沒有任何反應。

的代碼是這樣的:

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); 
    } 
} 

雖然Python代碼是:

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

我在做什麼錯?

+0

哪個「默認」 LED閃爍:電源,RX,TX或13當你只需將Arduino的在做電源指示燈亮起? –

+0

對不起,默認情況下我的意思是LED 13.但是我發現我做錯了什麼,我會在下面寫下anwser – Beriol

回答

1

我發現了這個問題。基本上,當我從python打開端口時,Arduino會自動重置,所以我在端口打開後發送的內容被Arduino丟棄了(因爲它仍然被重置)。

我現在通過在打開端口後添加睡眠來解決問題,所以同時Arduino完成重置。

的Python代碼現在看起來是這樣的:

import serial 
import time 
ser = serial.Serial('/dev/ttyACM0', 9600) 
time.sleep(5) 
ser.write('3') 
相關問題