Skip to main content
 首页 » 编程设计

python之如何通过 USB 线从 Raspberry Pi 向 Arduino 发送消息

2025年04月02日34xiaohuochai

我正在尝试将数字从 Raspberry Pi 发送到通过 USB 连接的 Arduino Uno。我关注了this非常简单的教程。

我可以找到 Arduino 连接的端口,并且我已经编写了代码,以便每当 Arduino 通过串口接收到某些东西(任何东西)时,它都会使默认 LED 闪烁几次。问题是它从来没有收到任何东西。

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

我做错了什么?

请您参考如下方法:

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

我现在的解决方法是在打开端口后简单地添加一个 sleep ,同时 Arduino 完成重置。

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

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