[英]Raspberry Pi to Arduino Continuous Serial Communication
我想使用 Raspberry Pi 旁邊的 pyserial 庫將數據從我的 Raspberry Pi 發送到 Arduino。 我只是用 USB 連接兩個設備。 首先,我將一個程序上傳到 Arduino,檢查是否有可用的串行數據,然后我將讀取它並使用 if else 語句比較接收到的數據。 如果我在 Python 程序中設置每 5 秒寫入串行端口之間的延遲,它會正常工作,但如果我將延遲設置為 1 秒,它會隨機讀取它。 在我在 Raspberry Pi 上運行它之前,我現在只是使用 Windows 來測試它。 有什么辦法可以加快數據發送速度而不是增加 5 秒的延遲? 下面是我寫的示例代碼。
Python
import serial
import time
port=serial.Serial('COM8',9600)
time.sleep(5)
try:
while True:
port.write(b'Hi\n')
time.sleep(5)
except:
port.close()
阿杜諾
String dataIn;
int led = 13;
void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
Serial.flush();
}
void loop()
{
if (Serial.available())
{
dataIn = Serial.readStringUntil("\n");
if (dataIn == "Hi\n")
{
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Serial.flush();
dataIn = "";
}
}
我會推薦像下面這樣使用 String lib
String command;
void loop() {
if (Serial.available())
{
command = Serial.readStringUntil('\n');
command.trim();
command.equals("something");
/*your Implementation here*/
}
}
這對我來說很有效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.