pumpitup 发表于 2014-2-1 15:39:04

关于用arduino制作电子琴

学习了tone,于是做个简易的电子琴

先是考虑用7个数字输入口来接收按键,但是如果出现某个时刻到多个键同时按下应该怎么处理,我的想法是:

1、不处理,那么结果是根据你程序里扫描的顺序决定了多键按下时发哪个音

2、用一个数组,当某个键按下时,记录进去,当抬起时,从记录中删除。在扫描的过程,对于数组中的键位不作处理,结果应该是如果长按一个键,如果再按下另一个键的时候,会发出另一个键的声音。不足是当你松开另一个键的时候,之前的键也不发音了。

3、用一个数组,记录每个键最近一次按下去的时间,再作处理。



这几种方法都有一个缺点,就是真正的电子琴在多键一起按的时候,应该发一个混音。

我想起好像电子琴的电路好像是每个按键连一个电阻。设想在arduino中用一个模拟口,按键接串联的电阻来实现(好像不行,两键一起按的时候不会发中间的声音的)

不知道有没有什么好的意见。

Ansifa 发表于 2014-2-2 02:19:24

本帖最后由 Ansifa 于 2014-2-2 02:38 编辑

混音可以看看http://www.geek-workshop.com/thread-242-1-1.html不过我只测试过两个脚输出音频,还没试过更多。


多键检测可以一次读n个IO脚,也可以用74HC165/4021做shiftIn(http://www.arduino.cc/en/Tutorial/ShiftIn)
页: [1]
查看完整版本: 关于用arduino制作电子琴