如何通过USB线将Raspberry Pi的消息发送到Arduino

时间:2016-05-13 19:42:42

标签: python arduino serial-port raspberry-pi

我试图将Raspberry Pi中的号码发送到通过USB连接的Arduino Uno。我按照this教程进行了非常简单的操作。

我可以找到Arduino连接的端口,并且我已经编写了代码,这样每当Arduino通过串口(任何东西)接收到某些内容时,它会默认闪烁几次。问题是它永远不会收到任何东西。

当我从Raspberry运行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')

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我发现了问题。基本上当我从python打开端口时,Arduino会重置自己,所以在端口打开后我发送的东西被Arduino丢弃了(因为它还在重置)。

我现在只需在打开端口后添加一个睡眠就解决了,所以同时Arduino完成重置。

python代码现在看起来像这样:

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