簡體   English   中英

Raspberry Pi 到 Arduino 連續串行通信

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM