我已经知道如何使用多路复用器扩展 Arduino 上的数字引脚数量。
我想增加我拥有的模拟输入通道的数量。一种解决方案是添加另一个 Arduino 作为从站。
如何增加模拟输入通道的数量?(我假设涉及一些 MUXing 和 ADC)。如果写答案太复杂,电路/代码的大致轮廓也可以。
我也愿意接受屏蔽建议,但如果有一个不太硬的硬件解决方案,我更喜欢它。
我已经知道如何使用多路复用器扩展 Arduino 上的数字引脚数量。
我想增加我拥有的模拟输入通道的数量。一种解决方案是添加另一个 Arduino 作为从站。
如何增加模拟输入通道的数量?(我假设涉及一些 MUXing 和 ADC)。如果写答案太复杂,电路/代码的大致轮廓也可以。
我也愿意接受屏蔽建议,但如果有一个不太硬的硬件解决方案,我更喜欢它。
如果您已经熟悉数字多路复用器芯片,那么好消息!它们也可用于模拟信号。
http://playground.arduino.cc/Learning/4051
基本前提与数字信号复用完全相同。您将 4051 芯片用作“换道器”并读取您告诉芯片切换到的任何通道的信号。4051 在 arduino 上使用 3 个数字引脚和 1 个额外的模拟(或数字)引脚来创建多达 8 个输入通道。一些多路复用器是可链接的,因此您可以相当轻松地添加 8 个以上的信号,而无需将它们从 arduino 本身带走。
它与您已经知道的数字信号技术完全一样,只需将您读取的通道连接到模拟引脚而不是数字引脚,然后循环通过二进制状态并读取模拟值。
我为你制作了一个动画 gif。
记住 Arduino 的 ATmega 芯片本身使用模拟 MUX 可能很重要。基于 Uno (ATmega328) 的芯片只有一个 ADC。6 个模拟输入实际上是一个连接到那个 ADC 的 MUX。
这就是您一次只能读取 1 个模拟输入的原因。
在扩展模拟输入时,可能需要考虑完成所有这些 MUX 需要多少时间,以及您的应用中是否需要额外的外部 ADC。
考虑一下:添加与 Arduino 进行串行通信的 ATtiny 85,它使用 2 个引脚用于 Rx、Tx,并且您还有 3 个可用作模拟的引脚。这aay你可以开发自己的协议,ATtiny可以处理算法并将处理后的信息发送到Arduino,它也很便宜,我自己尝试过,我认为这是一个不错的架构。
再会