如何通过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') 

我在做什么错?

+0

哪个“默认” LED闪烁:电源,RX,TX或13当你只需将Arduino的在做电源指示灯亮起? –

+0

对不起,默认情况下我的意思是LED 13.但是我发现我做错了什么,我会在下面写下anwser – Beriol

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

我现在通过在打开端口后添加睡眠来解决问题,所以同时Arduino完成重置。

的Python代码现在看起来是这样的:

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