Input Arduino输入检测时间
我想知道,如果我能在Arduino上建立一个简单的程序来检测声音的方向。我将有两个麦克风连接到arduino,当检测到声音时,arduino会告诉我哪一个麦克风先做出反应 我担心arduino是否能够足够快地检测到这种差异,因为我会在金属管道上使用这种设备。金属中的声速约为5000m/s,因此,如果话筒彼此相距1米,这意味着相差0.2毫秒Input Arduino输入检测时间,input,io,arduino,Input,Io,Arduino,我想知道,如果我能在Arduino上建立一个简单的程序来检测声音的方向。我将有两个麦克风连接到arduino,当检测到声音时,arduino会告诉我哪一个麦克风先做出反应 我担心arduino是否能够足够快地检测到这种差异,因为我会在金属管道上使用这种设备。金属中的声速约为5000m/s,因此,如果话筒彼此相距1米,这意味着相差0.2毫秒 arduino能完成这项任务吗?这似乎是可行的。然而,模拟读取不如数字读取快。如果你在两次阅读之间花费了太多时间,一个说话人的延迟可能只是注册为一个稍低的值,
arduino能完成这项任务吗?这似乎是可行的。然而,模拟读取不如数字读取快。如果你在两次阅读之间花费了太多时间,一个说话人的延迟可能只是注册为一个稍低的值,但同时 但是,查看数据表,单个样本在自由运行模式下需要13个时钟周期,约为812.5 ns,因此有足够的时间进行多次读取,甚至可能超过10位读取。请记住,这是直接使用ADC,而不是使用速度慢得多的Arduino
analogRead()
您可以进行搜索,查看是否有人发布了analogRead()
的一些计时信息,但是有很多直接使用ADC的教程
此外,如果您想要瞬时读数,您可以重新设计电路,在传感器检测到高于阈值后提供数字脉冲。然后使用外部中断,您可以捕获脉冲1个周期内触发的第一个传感器。搜索阈值检测器可以为您指明正确的方向