这个小程序表明 Arduino UNO 能够以至少 77 kHz(甚至可能是 154 kHz)的速率记录模拟读数。
首先,模数转换器设置寄存器(ADSCRA 和 ADSCRB)的设置方式是,模拟值将以 77 kHz 的速率连续读取并放入 ADCH 寄存器。然后可以以任何所需的频率读取该 ADCH 寄存器。如果读取频率快于 77kHz,则会多次报告相同的值。
这种方法的优点是不需要中断(到目前为止,我发现的大多数草图都在等待模拟读取以获取新的结果,然后再读取该值)。
仅读取 8 个最高有效位而不是 10 位。这降低了噪音并允许更紧凑的存储。一个 8 位的数字可以存储在一个字节中,一个 10 位的数字需要一个整数(2 个字节)。在 77 kHz 的采样率下,arduino 的内存将很快被填满......
Timer2 用于定期读取值。首先将定时器溢出标志设置为零。然后执行动作。然后控制器等待设置溢出标志。只要所有动作的执行时间都在设置标志的时间段内,这将产生非常规律的采样。
结果在串行监视器中显示为图形。我想图形显示将允许更好地查看数据(要完成的工作)。
在下面您可以看到通过以 77 kHz 采样的三级低通滤波器过滤的 1953 Hz 方波的串行输出
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !