如何在Arduino上使用3.3V和5V输出传感器?


13

要在使用3.3V传感器时从Arduino ADC获得完整分辨率,您必须做两件事。

  1. 将3.3V电源连接到AREF引脚。
  2. 在代码中调用analogReference(EXTERNAL)

但是,如果我必须混合使用3.3V和5V输出传感器呢?我有什么选择?

Answers:


10

一个简单的解决方案是使用电阻分压器(比率约为1:1.94)并将5v信号减小到3.3v的峰值。这样一来,您将保持全分辨率,而无需切换基准。合适的分频器应使用从传感器到模拟输入的18k,从模拟输入到地的33k。这会将5v输入转换为3.23v输入。如果需要,使用更高精度的电阻器可使该电压接近3.3v。您需要确保传感器可以提供给定值所需的电流-在这种情况下约为0.1mA。ATMega模拟输入的输入电阻约为100M欧姆,因此您可以在担心输入电阻的影响之前,大幅增加这些值(减少传感器的负载)。


3

有两件事要忍受3.3v传感器降低的分辨率,并使参考电压保持在5V。那就是我通常所做的事情,它足够好。

您也可以在读取各个传感器时即时切换您的AnalogReference。我确实记得阅读过有关混合外部参考和内部参考以及在AREF上具有串联限流电阻的内容,因此请仔细阅读Arduino参考的这一部分。


2

您也可以考虑寻找较新版本的传感器。您可能能够获得在相同的电压限制下工作的传感器,或者您可能发现有可用的较新版本的传感器,这些传感器将为您提供数字输出,并且可以使用I2C或其他简单的串行通信协议进行轮询。当然,这需要购买新的芯片,但是它们并不昂贵,不仅可以消除问题,而且还可以为项目提供更高的精度,因为您不必担心噪声。在你的电路中。

无需重新设计整个项目以适应新的芯片,John C和ham就可以提供出色的简单解决方案。以我的经验,我使用的3v3传感器具有5v的电源和参考电压,并且噪声问题比休闲项目的分辨率下降要大。这是最简单的方法,但是确实需要您做一些数学运算,因此,我对ka1kjz的帖子进行了投票(请检查参考表)。

就分压器解决方案而言,只要使用高精度电阻器,您就可以获得将所有测量值都置于相同电压范围内的优势,并且获得了使用AREF跟随任何电压纹波的比例校正优势。但是,实际上,我发现我的项目中的噪声和缺乏校准技术造成的误差比电压波动或10%的电阻器合理造成的误差大。因此,我也对JohnC的解决方案投了赞成票,因为他详细介绍了所有这些内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.