如何扩展可供我使用的模拟(输入)引脚的数量?


26

我已经知道如何使用多路复用器扩展Arduino上的数字引脚数量。

我想增加我的模拟输入通道的数量。一种解决方案是添加另一个Arduino作为从属。

如何增加模拟输入通道的数量?(我假设其中涉及一些MUX和ADC)。如果太复杂而无法写出答案,那么电路/代码的总体轮廓也将很好。

我也愿意公开提出建议,但是如果有一个不太硬的硬件解决方案,我会更喜欢它。


Answers:


32

如果您已经熟悉数字多路复用器芯片,那就好消息了!它们也可以用于模拟信号。

http://playground.arduino.cc/Learning/4051

基本前提与数字信号多路复用完全相同。您将4051芯片用作“车道变更器”,并读取告诉芯片切换到的任何车道的信号。4051在arduino上使用3个数字引脚和1个附加的模拟(或数字)引脚来创建多达8条输入通道。一些多路复用器是可链接的,因此您可以轻松地添加8个以上的信号,而无需将它们从arduino本身移开。

就像您已经知道的数字信号技术一样,只需将读取的通道连接到模拟引脚(而不是数字引脚),然后遍历二进制状态并读取模拟值即可。

我为您制作了动画gif。

在此处输入图片说明


3
当链接确实回答了问题时,您能否详细说明一下?简短地讲一下电路吗?(建议不要在网络上使用仅链接的答案)
Manishearth 2013年

好的。答案扩大了。
史蒂夫·库利

3
需要澄清的是,您提到的4051是模拟多路复用器,而不是数字多路复用器,我会在您的回答中进行澄清,因为肯定有数字多路复用器无法完成此任务,因为它们的输出和输入驱动器不是为线性响应而设计的。可能需要补充一点,链接模拟多路复用器可能会影响信号,具体取决于多路复用器的特性
naven87

1
值得注意的是,选择模拟复用器并非易事,设计人员应考虑电压摆幅(大多数仅在电源范围内工作,如运算放大器),带宽,导通电阻,串扰等,其中电压摆幅是最大的潜力。显示塞子。
米斯特先生(MisterMystère)2015年

我相信您也可以使用数字引脚为传感器供电,因此只需打开一个数字引脚即可检测VCC并共享相同的模拟。
Ciasto piekarz

10

重要的是要记住,Arduino的ATmega芯片本身正在使用模拟MUX。基于Uno的(ATmega328)芯片只有一个ADC。6个模拟输入实际上是连接到该ADC的MUX。

这就是为什么您一次只能读取1个模拟输入的原因。

扩展模拟输入时,可能有必要考虑完成所有这些MUX所需的时间,以及在您的应用中是否需要额外的外部ADC。


1

考虑一下:添加与Arduino进行串行通信的ATtiny 85,它使用2个引脚分别用于Rx,Tx,还有3个可以用作模拟的引脚。这样,您可以开发自己的协议,ATtiny可以处理算法并将处理后的信息发送到Arduino,它也非常便宜,我尝试了一下,我认为这是一个不错的体系结构。

美好的一天

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.