极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9537|回复: 1

关于用arduino制作电子琴

[复制链接]
发表于 2014-2-1 15:39:04 | 显示全部楼层 |阅读模式
学习了tone,于是做个简易的电子琴

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

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

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

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



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

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

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

使用道具 举报

发表于 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
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-9 23:29 , Processed in 0.037031 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表