Input Arduino输入检测时间

Input Arduino输入检测时间,input,io,arduino,Input,Io,Arduino,我想知道,如果我能在Arduino上建立一个简单的程序来检测声音的方向。我将有两个麦克风连接到arduino,当检测到声音时,arduino会告诉我哪一个麦克风先做出反应 我担心arduino是否能够足够快地检测到这种差异,因为我会在金属管道上使用这种设备。金属中的声速约为5000m/s,因此,如果话筒彼此相距1米,这意味着相差0.2毫秒 arduino能完成这项任务吗?这似乎是可行的。然而,模拟读取不如数字读取快。如果你在两次阅读之间花费了太多时间,一个说话人的延迟可能只是注册为一个稍低的值,

我想知道,如果我能在Arduino上建立一个简单的程序来检测声音的方向。我将有两个麦克风连接到arduino,当检测到声音时,arduino会告诉我哪一个麦克风先做出反应

我担心arduino是否能够足够快地检测到这种差异,因为我会在金属管道上使用这种设备。金属中的声速约为5000m/s,因此,如果话筒彼此相距1米,这意味着相差0.2毫秒


arduino能完成这项任务吗?

这似乎是可行的。然而,模拟读取不如数字读取快。如果你在两次阅读之间花费了太多时间,一个说话人的延迟可能只是注册为一个稍低的值,但同时

但是,查看数据表,单个样本在自由运行模式下需要13个时钟周期,约为812.5 ns,因此有足够的时间进行多次读取,甚至可能超过10位读取。请记住,这是直接使用ADC,而不是使用速度慢得多的Arduino
analogRead()

您可以进行搜索,查看是否有人发布了
analogRead()
的一些计时信息,但是有很多直接使用ADC的教程

此外,如果您想要瞬时读数,您可以重新设计电路,在传感器检测到高于阈值后提供数字脉冲。然后使用外部中断,您可以捕获脉冲1个周期内触发的第一个传感器。搜索阈值检测器可以为您指明正确的方向