如何通过USB数据线从Raspberry Pi发送消息到Arduino
问题描述:
我试图从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')
我在做什么错?
答
我发现了这个问题。基本上,当我从python打开端口时,Arduino会自动重置,所以我在端口打开后发送的内容被Arduino丢弃了(因为它仍然被重置)。
我现在通过在打开端口后添加睡眠来解决问题,所以同时Arduino完成重置。
的Python代码现在看起来是这样的:
import serial
import time
ser = serial.Serial('/dev/ttyACM0', 9600)
time.sleep(5)
ser.write('3')
哪个“默认” LED闪烁:电源,RX,TX或13当你只需将Arduino的在做电源指示灯亮起? –
对不起,默认情况下我的意思是LED 13.但是我发现我做错了什么,我会在下面写下anwser – Beriol