首页 > 解决方案 > 测量 0-10V 模拟信号有什么意义?(Arduino、ESP32、ESP8266 和 ADS1115)

问题描述

我正在尝试在 arduino nano 的帮助下从压力表(Balzers SingleGauge TPG 251)读取 0-10V 模拟信号。使用分压器,我可以达到 0-5V 的范围,而不会损坏我的 arduino。可悲的是,就我的目的而言,集成 10 位 ADC 的分辨率非常低(5000mV/1023 ~ 5mV 步长)。压力表的测量范围为 10e-11 mbar 至 1000 mbar,并相应地给出 0-10V 的值。通过观察,我看到显示以这种方式更改值:

这意味着在 0-10V 范围内,每个模拟步长为 4.6 mV。由于我使用的是电压除法器,因此 mV/步长的差异将减半,达到 2.3 mV/步。这显然很难解决,因此我需要使用 12 位或 16 位 ADC。我决定使用 16 位 ADC,因为为什么不具有更好的精度,对吧?我已经购买了 ADS1115,我希望能够更好、更精确地读取这些值(最大 0.15mV)。使用模拟值,我可以反向获得压力作为数字。

现在真正的问题来了。我希望将设置连接到本地 wifi,人们可以在其中查看压力。而且我还想让他们输入他们希望收到的每封电子邮件的提醒值,他们也输入。我已经在可能的情况下使用 ESP32 ( https://randomnerdtutorials.com/esp32-email-alert-temperature-threshold/ )看过本教程。所以我会尝试用一个 ESP8266 nodeMCU 来完成它。

我知道这需要接受很多,我希望有人对我如何在这个项目中取得进展有一个想法。以下是我这边的一些问题:

  1. 这个项目我需要一个 arduino 和一个 ESP8266 吗?由于 Arduinos 的模拟范围是 0-5V,而 ESPs 的模拟范围是 0-1V,因此 arduino 可以处理更多。然后,ESP 的目的只是发送电子邮件和 Web 服务器的内容。

  2. 有没有办法只使用 ESP8266 和 ADS1115 并仍然以高精度读取模拟值?还是只是不可能?

  3. 有什么反馈在这里有意义吗?也许有一种方法可以做到这一点,我还没有用谷歌搜索过。

先感谢您!

标签: arduinoesp8266esp32adc

解决方案


ADS1115 具有 I2C 接口。只需将其连接到 ESP 即可。不需要 Arduino nano。

请阅读您的 ADC 的数据表。

http://www.esp8266learning.com/ads1115-analog-to-digital-converter-and-esp8266.php


推荐阅读