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

如何将树莓派INA219测量代码迁移至Arduino Uno运行

关于Arduino拉取树莓派脚本运行的可行性

不可行。Arduino UNO是不带操作系统的8位单片机,既无法直接运行Python代码,也不具备主动访问树莓派文件系统、拉取脚本执行的能力。如果不想重写代码,只能保留INA219接树莓派的原有接线,继续跑原Python脚本,这种场景下Arduino完全不参与测量,达不到迁移到独立设备运行的目的。要实现功能迁移,必须编写Arduino端运行的C++代码。

无外接显示时查看Arduino输出的方法

你不需要外接显示器或面包板:

  • Arduino UNO通过USB线连接树莓派后,会在树莓派系统下枚举出串口设备,默认路径为/dev/ttyACM0。你通过SSH登录树莓派后,既可以用Arduino IDE自带的串口监视器查看输出,也可以直接用screen/minicom等命令行串口工具读取数据。
  • INA219接线不需要面包板:直接将模块引脚对应插到Arduino UNO排针上即可:VCC接5V(多数INA219模块兼容5V逻辑,若模块只支持3.3V就接3.3V排针)、GND接GND、SDA接A4、SCL接A5,这是UNO硬件I2C的固定引脚,插紧就能稳定通信。
可直接使用的Arduino迁移代码

先打开树莓派上的Arduino IDE,在库管理器中搜索安装Adafruit INA219依赖库,之后上传以下代码即可,逻辑完全对齐你原有Python脚本:

#include <Wire.h>
#include <Adafruit_INA219.h>

#define SHUNT_OHMS 0.1  // 与原脚本分流电阻参数一致
Adafruit_INA219 ina219;
unsigned long startTick;

void setup() {
  Serial.begin(115200);
  while (!Serial) delay(10); // 等待串口连接就绪

  // INA219初始化,默认量程32V/2A,可根据实际测量需求调整
  if (!ina219.begin()) {
    Serial.println("INA219初始化失败,请检查接线");
    while(1) delay(1000);
  }
  ina219.setCalibration_32V_2A();

  // 打印CSV表头,与原脚本输出字段完全一致
  Serial.println("Bus Voltage,Bus Current,Power,Shunt Voltage,Frequency");
}

void loop() {
  startTick = micros();

  // 读取测量值,单位与原Python脚本对齐:V/mA/mW/mV
  float busVoltage = ina219.getBusVoltage_V();
  float busCurrent = ina219.getCurrent_mA();
  float power = ina219.getPower_mW();
  float shuntVoltage = ina219.getShuntVoltage_mV();

  // 计算采集频率
  float costUs = micros() - startTick;
  float freq = 1000000.0 / costUs;

  // 输出CSV格式数据
  Serial.print(busVoltage);
  Serial.print(",");
  Serial.print(busCurrent);
  Serial.print(",");
  Serial.print(power);
  Serial.print(",");
  Serial.print(shuntVoltage);
  Serial.print(",");
  Serial.println(freq);

  // 保持10Hz采样率,与原脚本采样频率一致
  delay(100);
}

使用说明

  • 烧录代码时在Arduino IDE中选择板卡为Arduino UNO,端口选择/dev/ttyACM0,点击上传即可完成烧录,全程不需要外接显示设备。
  • 若提示串口权限不足,在树莓派SSH终端执行sudo usermod -aG dialout pi后重启树莓派即可。
  • 数据存为CSV文件的操作和原脚本逻辑一致:在终端执行cat /dev/ttyACM0 > SensorData.csv即可开始记录,按下CTRL+C即可终止记录,生成的CSV文件格式与原Python脚本输出完全兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:15:52