亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 与智能手机打造智能电压表——简单易做的 DIY 项目

组件与材料

组件数量
Arduino UNO1
PHPoC WiFi Shield for Arduino1
电阻 100k Ω1
电阻 1M Ω1
杜邦线若干

项目简介

本项目演示如何利用 Arduino 模拟输入引脚测量电压,并通过分压电路将测量范围扩展至 55V。结合 PHPoC WiFi Shield,可在智能手机网页上实时查看电压值。

工作原理

Arduino 模拟输入最大仅支持 5V。为测量更高电压,需使用分压电路:

理论公式: V_measure = (R1 + R2) / R2 × V_in

选取 R1 = 1MΩ,R2 = 100kΩ,分压比 = 11,最大可测电压 = 11 × 5V = 55V。大阻值可限制流经引脚电流,保护 Arduino。

实际问题与校准

实际中存在两大误差源:

解决方案分两步校准:

  1. 测量真实分压比:将待测电压接 A0,已知 3.3V 接 A1,ratio = A1读值 / A0读值。运行 ResistorCalibration.ino 并通过串口绘图器获取比值。
  2. 实时校准基准电压:主电路中将 3.3V 接 A1,每次测量前计算 V_REF = 1023 × 3.3 / A1值,再换算 V_in 和 V_measure。

操作步骤

  1. 按“电阻校准接线图”接线,上传 ResistorCalibration.ino
  2. 打开串口绘图器,记录 ratio 值
  3. 将 ratio 写入 Voltmeter.ino 第 5 行
  4. 按“主接线图”重新接线,上传 Voltmeter.ino
  5. 将 voltmeter.php 与背景图 voltmeter_body.jpg 上传至 PHPoC Shield
  6. 手机浏览器访问 https://phpoc_shield_ip/voltmeter.php 即可查看电压

核心代码片段

ResistorCalibration.ino(校准)

double ratio;
int analogReadAverage(int pin, int n) {
  unsigned long sum = 0;
  for (int i = 0; i < n; i++) { sum += analogRead(pin); delay(2); }
  return sum / n;
}
double resistorCalibration() {
  double A0 = analogReadAverage(A0, 20);
  double A1 = analogReadAverage(A1, 20);
  return A1 / A0;
}
void setup() { Serial.begin(9600); }
void loop() {
  ratio = resistorCalibration();
  Serial.print("ratio:"); Serial.println(ratio);
  delay(200);
}

Voltmeter.ino(主程序)

double ratio = 11.59; // 替换为校准值
double mapFloat(double x, double in_min, double in_max, double out_min, double out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
double getVoltageReference() {
  double A1 = analogReadAverage(A1, 20);
  return 1023.0 * 3.3 / A1;
}
void loop() {
  double V_REF = getVoltageReference();
  double A0 = analogReadAverage(A0, 20);
  double V_in = mapFloat(A0, 0, 1023, 0, V_REF);
  double V_measure = ratio * V_in;
  Serial.println(V_measure);
  delay(200);
}

voltmeter.php(Web 界面)

利用 WebSocket 实时接收串口数据,在 Canvas 上绘制七段码风格电压表。需随 voltmeter_body.jpg 一同上传至 PHPoC Shield。

接线提示

文中提供多张实物接线照片,展示分压电路、PHPoC Shield 连接及手机端显示效果。

制造工艺

  1. DIY Photoshop 硬件控制台:Arduino Nano RP2040 实现快捷键外设
  2. 基于 Arduino 与 Python 的可靠 RFID 考勤系统
  3. 基于 Arduino、1Sheeld 与红外控制的万能安卓遥控器
  4. Arduino 红外心率传感器 DIY:低成本高精度,串口绘图器实时波形
  5. 基于Arduino UNO的精准频率与占空比测量
  6. Arduino DIY 电压表:Nokia 5110 屏幕显示,手把手教学
  7. Arduino 声纳实时测距与 Processing 可视化
  8. MobBob:3D 打印智能机器人,Android 手机无缝控制,语音视觉一体
  9. Bolt IoT + Arduino UNO 实现 6 路 LED 无级调光
  10. DIY 智能 Arduino 机械臂:主从控制与动作记忆教程
  11. 使用 Arduino Nano 和 RDA8057M 制作紧凑型 FM 收音机
  12. 可编程三轴机械臂套件:Arduino + 蓝牙 本地/远程双模控制