You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求树莓派与Arduino串口通信示例代码及变量传输方案

树莓派通过串口向Arduino传输循环变量的实现方案

硬件连接

用Micro-USB线连接树莓派的USB口和Arduino的USB口,树莓派会自动识别串口设备(通常为/dev/ttyUSB0或/dev/ttyACM0,可通过ls /dev/tty*命令确认)。

树莓派端Python代码(极简版)

首先安装串口依赖库:

pip install pyserial

代码实现1-10循环并发送变量:

import serial
import time

# 初始化串口,波特率要和Arduino一致
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
time.sleep(2)  # 等待Arduino重启完成

for x in range(1, 11):
    # 将整数转为字符串并添加换行符,方便Arduino识别结束
    ser.write(f"{x}\n".encode())
    print(f"已发送: {x}")
    time.sleep(1)  # 间隔1秒发送一次,可根据需求调整

ser.close()

Arduino端代码(极简版)

void setup() {
  Serial.begin(9600);  // 波特率与树莓派一致
}

void loop() {
  if (Serial.available() > 0) {
    String input = Serial.readStringUntil('\n');  // 读取到换行符为止
    int x = input.toInt();  // 转为整数变量

    // 这里可以扩展步进电机控制或其他逻辑,先打印验证
    Serial.print("收到变量x: ");
    Serial.println(x);

    // 示例:用x作为循环次数
    for (int i = 0; i < x; i++) {
      // 这里可以加步进电机脉冲输出或水阀控制代码
      delay(500);
    }
  }
}

扩展说明

  • 树莓派端后续可接入Node-RED,通过serial out节点替代Python代码发送数据,或用Python脚本作为Node-RED的exec节点执行。
  • Arduino端可直接将x映射为步进电机角度(比如x*18度对应1-10转18-180度),或控制水阀的开关时长(x秒)。

内容的提问来源于stack exchange,提问作者ceilowens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 08:50:43