【发布时间】:2019-07-10 05:03:56
【问题描述】:
我正在尝试通过串行连接将一些数据从树莓派发送到 arduino,但速度似乎太慢了。我要做的就是打开和关闭 arduino 板上的灯,然后通过串行连接发送切换灯的信号。
灯会在某个时间间隔打开和关闭,如下面的代码所示。当延迟大于 1 时,它工作正常,灯会打开和关闭,但是当我将延迟更改为小于 1 时,灯根本不闪烁。我尝试更改波特率,但这无济于事。两块板上的波特率相同。 下面的代码在树莓派上。
import serial
import time
serial_light = serial.Serial('/dev/ttyACM0', 250000)
delay = float (2)
while(1):
inp = "60"
print ("On\n")
serial_light.write(inp.encode())
time.sleep(float (delay))
inp = "61"
print ("Off\n")
serial_light.write(inp.encode())
time.sleep(float (delay))
//Arduino代码
int light = 13;
void setup()
{
Serial.begin(250000);
pinMode(light, OUTPUT);
}
void loop()
{
int in = 0;
while(Serial.available() == 0);
in = Serial.parseInt();
if(in == 60)
{
digitalWrite(light, HIGH);
}
else if(in == 61)
{
digitalWrite(light, LOW);
}
}
再一次,它适用于延迟值 >= 1 但不在 0 和 1 之间。
【问题讨论】:
-
串行通信对于简单的命令传输来说并不慢。看来您有代码实现问题。向我们展示您的 Arduino 代码以获得更好的帮助。
-
已编辑,请参考上文
标签: arduino communication