如何用单片机实现测钢琴琴键的频率?

发布时间:2019-08-05 11:33:48

如何用单片机实现测钢琴琴键的频率?

推荐回答

提供一个简单思路哈,具体的部分需要楼主自己设计了:

               采样→模拟数字转换→比对→校准

采样

需要传感器,能够检测到声音的频率,即制作一个采样电路板。

具体选择有很多,想自己做电路,百度查资料就行,不想做,直接淘宝找语音模块

模拟数字转换

转换采样电路的结果,先用放大电路调整电平,然后用模数转换芯片转换,得到数字信号。

端口不富裕,选择串行通讯的模数芯片,然后利用单片机的串行通讯端口把采样的信号频率输入单片机;

若端口富裕,可以直接使用ADC0805之类的并行模数芯片,接到单片机的IO口。

由于钢琴琴键检测频率校准不需要很高的数据处理速度,选最速度最低的芯片即可。

采样电路做完之后需要校准,确保你得到的信号是标准频率(除非你准备自己录制比对标准)

比对

这部分涉及编程了,用钢琴每个音色对应的标准频率来和采样结果比较,得出具体的结果(高或者低,差多少)。比较的程序网上有很多,建议多看看好的单片机示例程序。

校准结果

得到比较后的值,可以显示校准结果,钢琴是人工调音的吧?最简单的方法,找俩LED灯,高了亮一个,低了亮另外一个。抛砖引玉,可以换成数码管、LCD等等,甚至显示差值

系统基本就是这样了,由于钢琴是人工调音的,所以没法做成闭环系统,开环系统多校准校准还是比较容易制作的

以上问题属网友观点,不代表本站立场,仅供参考!