我正在使用Arduino UNO板。我有24个模拟通道,给我0~5v模拟输出。现在我的问题是我只有5个模拟通道。我想每2分钟从每个频道读取值,然后切换到其他频道。任何人都可以建议我在硬件中如何获得模拟值?
我计划使用8:1多路复用器或16:1多路复用器。它是否是正确的做法。你能建议用硬件做其他方法吗?
74HC4051,74HCT4051,ADG708,MD14051B, IC我计划使用Use.dep [结束时,s1,s2只是切换频道
答案 0 :(得分:1)
首先,您可能需要知道甚至Arduino Uno也具有内部MUX。根据我读取多个模拟通道的经验,这是我采用的方法。但是,通过这种方法,建议您重新检查模拟值,以便添加MUX不会产生任何错误或偏差。
这可以通过比较带有MUX的测量输出和不带有MUX的测量输出来完成。我使用了74HC4051,它工作出色,只需确保不要让任何引脚悬空即可。这种方法的唯一缺点是,您将需要使用一些I / O来控制MUX,但是如果这对您来说不是问题,那么请继续。
任何其他方法都可能更复杂。这将需要您的模拟通道相互关联,并且您需要找到一种将多个模拟通道合并为单个通道的方法。
例如:如果您的目的是比较两个模拟值,而不是测量该值并在软件中比较该值,则可以使用运算放大器比较电路为您比较该值并取比较结果。
答案 1 :(得分:0)
要读取比输入更多的模拟通道,模拟多路复用器是一个不错的选择。你建议的所有产品都可以使用,但就个人而言,我更喜欢ADI公司的模拟电路IC,所以我会选用ADG708,但这只是个人偏好。
答案 2 :(得分:0)
使用光子像素耦合方法,这是科学上用于对无限数量的传感器并行采样的一种新方法。
基本上,每个传感器输出都是一个LED。如果您有10000个传感器,则所有传感器的输出都将插入一个LED阵列中,这就是作者所说的LED矩阵。之后,LED阵列由摄像机拍摄,图像由计算机实时处理。软件会从LED阵列的每个LED中读取一个像素,并将其转换为数值。因此,您的LED阵列将转换为矩阵(包含10000个元素),该矩阵中填充有可以在软件中按需处理的数字。我不知道我是否明确,但是您可以在这里阅读他们的文章:https://www.sciencedirect.com/science/article/pii/S2215016119300901
请注意,经典的多路复用是串行的,这种方法是并行的。
光子像素耦合方法之所以真正精巧,是因为它解决了工程中的两个主要问题:数量不限的传感器和在视频速率频率下的并行采样。试想一下,我们可以读取任意数量的传感器。我所徘徊的是,我们是否可以使光子像素耦合适应Arduino。我是微控制器领域的新手,但我知道Arduino可以支持cam,所以应该可以。
如果您是博士生,那么: P.A.加尼乌斯(C. Ionescu-Tirgoviste)塞尔维亚,E。Gagniuc。 光子-像素耦合:一种科学研究中并行采集电信号的方法。方法X,6:968-979,2019。