为 Arduino 模拟输入缩放电压,超越分压器

电器工程 Arduino 传感器
2022-01-07 11:49:11

我最近构建了一些光纤弯曲传感器,我想通过 Arduino 将从它们获得的值读取到计算机中。我正在用 Industrial Fiber Optics 的这个光电二极管测量光。目前,我给另一端的 LED 和光电二极管 2.2V。我的问题与这样一个事实有关,即通过光电二极管上的万用表测量的电压波动是线性的,但随着光纤的变形而相当小,甚至是非常激进的。例如,如果光纤是直的,取决于光纤(很难对它们进行相同的评分),电压会在 1.92V 左右徘徊,弯曲时会上升到 1.93-1.94V。我不担心获得相同的电压,因为我可以在软件中进行缩放。

我担心的是在使用 Arduino 进行 A/D 时会丢失分辨率。如果我的电压波动在 10mV 左右,即使我用分压器将电压提高到 5V,Arduino 的 10 位 A/D 不会量化它吗?我正在寻找的是一个模拟缩放器。如何扩展 1.92 和 1.94 之间的范围以覆盖从 0V 到 5V 的全范围,以便我可以利用 Arduino A/D 的全范围?

我觉得这一定是电子学中的常见操作,但我从未正式研究过它,所以我失去了很多东西。

(您可能会想,就像 davr 一样,“为什么要使用光纤进行弯曲感应?为什么在光纤弯曲时会发生电压变化?”诀窍是去除光缆一侧的包层. 这会让光溢出。当电缆弯曲远离刻痕时,更多的光会从电缆中释放出来,导致接收器中的电压下降,反之亦然。)

4个回答

这种意义上的信号调理非常普遍。您想使用放大器以使 10mV 范围跨越(例如)arduino 的整个 0-5V 范围。这可以使用诸如 LM741 之类的运算放大器来完成。您可能还希望在信号调节器的输出/ADC 输入上使用“电压钳”(例如:两个齐纳二极管),以确保该值不超过 5V。如果您在线查看运算放大器数据表和/或信号调理电路,您应该会找到有关您正在寻找的内容的指南。

因此,如果我理解正确,您希望能够“读取”1.9V 信号之上的 10 mV 变化吗?

如果是这种情况,那么我建议两个单独的阶段。第一个是光电二极管放大器(第 9 页是最标准的电路)。这将有助于将来自光电二极管的电流转换为电压。

第二级将是仪表放大器,例如德州仪器的 INA 系列(最好但也可能很昂贵)。这将有助于消除您的“共模”信号,在本例中为 1.9 V。您还可以在仪表放大器中添加增益,或者在最后添加一个非反相配置的简单运算放大器以帮助增益您的信号高达必要的 5 V。

我并不是说它会是完美的,但我认为这是一个好的开始。

最后一点,我喜欢 David 上面关于钳位的想法,尽管这可能会导致 A/D 转换器出现一些测量误差。更重要的是,如果您可以摆动它,请尝试比 741 更好的运算放大器。这些很常见,但规格很糟糕。输入端子上 3 或 4 mV 的失调电压确实会扰乱一个小信号,就像您要测量的那样。

~克里斯·加梅尔

建议您查看差分 PGA(可编程增益放大器)和 DAC 的组合,传感器输出连接到“+”输入,DAC 连接到“-”输入。(或为您提供等效功能的集成产品。)基本上,查看具有低增益的信号,找出它的偏移量,将该电压施加到 DAC 上,然后提高增益。

TI 的 PGA308看起来可能是一个不错的解决方案。

如果您想要更便宜的解决方案,请使用固定增益差分放大器(标准 4 电阻器 + 运算放大器即可)+ 稳定、安静的 8 位 DAC(稳定性/噪声特性比精度更重要),再次放入差分放大器的“+”输入上的传感器输出和“-”输入上的 DAC 输出。

读者练习:表明您可以通过对 DAC 使用二进制搜索技术使差分放大器输出脱离饱和并进入线性范围,并确保增益不大于 G1 = 满量程 ADC 输入电压,除以 DAC 的标称步长与其 DNL(微分非线性)之和。我可能会使用 (G1/2) 和 G2 中较小的一个,其中 G2 = 满量程 ADC 输入电压除以您关心的传感器输出电压范围。

使用光纤作为弯曲传感器可能是一个糟糕的选择,难道不是光纤的全部意义在于轻松地让您以最小的损耗弯曲拐角处的光线?