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

使用 Arduino 和智能手机的 DIY 电压表

组件和用品

Arduino UNO
× 1
适用于 Arduino 的 PHPoC WiFi 扩展板
× 1
电阻 100k ohm
× 1
电阻 1M ohm
× 1
跳线
× 1

关于这个项目

演示

如果您是 Arduino 新手,您可以开始学习 Arduino 新手教程。

工作原理

我们可以使用 Arduino 模拟输入引脚来测量电压。但是,最大可测量电压为5V。

为了增加可测量的电压,我们需要使用分压器

理论

我们有:

V_measure =(R1 + R2) / R2 * V_in

比率 =(R1 + R2) / R2

=> V_measure =比率 * V_in

如果我们选择 R1 =10 * R2,我们有:

V_measure =11 * V_in

由于允许的 V_in 最大值为 5V => 可测量电压的最大值为 55V

为了限制电流通过Arduino的管脚,可能会损坏Arduino,我们需要选择尽可能大的电阻值。

我选择R1 =1 Mohm, R2 =100Kohm

实践中

那里 是实践中的一些问题

  • R1 和 R2 的值有错误。误差导致V_measure的误差
  • Arduino 的电源可能不稳定。它使模拟输入的 V_REF 不稳定。因此,它会导致V_in.的计算错误 => 它会导致 V_measure 的计算错误

这些问题在校准部分得到解决

校准

1.衡量的真实价值 (R1 + R2) / R2

这个只需要做一次就可以得到比率

如下图接线:

ratio =(R1 + R2) / R2 =V_measure / V_in =A1_read_value / A0_read_value

比率 =A1_read_value / A0_read_value

此校准的代码 => 参见代码部分中的 ResisterCalibration.ino

2.供电不稳定

电源不稳定导致模拟引脚电压参考不稳定。导致电压计算错误。

为了解决这个问题,我们需要经常测量参考电压。

如何测量参考电压?

将 3.3V 连接到引脚 A1

参考电压是根据 A1 中的值间接测量的:

V_reference=1023 * 3.3 / A1_value

如何计算 V_measure:

V_in =mapFloat(A0_value, 0, 1023, 0, V_reference);V_measure =ratio * V_in;

主要接线:

如何

  • 接线为“电阻校准接线”电路
  • 上传 ResistorCalibration.ino
  • 打开串行绘图仪
  • 复制比率值
  • 在 Voltmeter.ino 的第 5 行替换此值
  • 重新布线为“主布线”
  • 上传 Voltmeter.ino
  • 上传网页用户界面 (voltmeter.php voltmeter_body.jpg ) 到 PHPoC 盾
  • 访问网页 http://phpoc_shield_ip_address/voltmeter.php 以查看电压。

您可以通过以下方式在智能手机上查看电压:

接线提示:

适合初学者的最佳 Arduino 入门套件

查看适合初学者的最佳 Arduino 套件

代码

  • ResistorCalibration.ino
  • Voltmeter.ino
  • 电压表.php
ResistorCalibration.inoArduino
- 接线如校准部分所述
- 运行此代码一次
- 打开串行绘图仪
- 复制比率值
- 在 Voltmeter.ino
double ratio;int analogReadAverage(int pin, int read_time){ unsigned long read_value =0; 的第 5 行替换此值// 读取模拟值 read_time 次: for(int i =0; i  
Voltmeter.inoArduino
这是主要代码。在上传此代码之前,我们需要:
- 上传 ResistorCalibration.ino
- 打开串行监视器
- 复制此代码第 5 行中的比率值和替换值
double V_measure;double V_in; double V_reference;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;}int模拟读取平均值(int pin,int read_time){ unsigned long read_value =0; for(int i =0; i  
voltmeter.phpPHP
此文件是 Web 用户界面。它需要与背景图片 voltmeter_body.jpg
PHPoC Shield - VOLTMETER<样式>html {height:100%;}body {width:100%;高度:100%;;文本对齐:居中;}.container {宽度:100%;最小高度:99%;最大高度:100%;}canvas { 背景:url(voltmeter_body.jpg);背景大小:包含;字体系列:'Segment7Standard';字体粗细:粗体;字体样式:斜体;} 

示意图

需要上传到PHPoC Shield

制造工艺

  1. 使用 Arduino Nano RP 2040 的 DIY Photoshop 编辑控制台
  2. 使用 Arduino 和 RFID 和 Python 的考勤系统
  3. 使用 Arduino、1Sheeld 和 Android 的通用远程控制
  4. 使用 Arduino DIY 红外线心跳传感器
  5. 使用 Arduino 的频率和占空比测量
  6. DIY 电压表与 Arduino 和诺基亚 5110 显示器
  7. Sonar 使用 arduino 并在处理 IDE 上显示
  8. MobBob:由 Android 智能手机控制的 DIY Arduino 机器人
  9. 使用 Bolt 和 Arduino 控制 LED 亮度
  10. 使用 Arduino 的简单智能机械臂
  11. 使用 Arduino 和 RDA8057M 的 FM 收音机
  12. 本地和远程可编程机械臂