Stormer 发表于 2014-4-28 11:14:36

【求助】电子琴按键的问题

本帖最后由 Stormer 于 2014-4-28 11:30 编辑

我用的中断来实现声音输出(不是用的ARDUINO自带的tone函数)。


如何做一个外部的键盘电路呢?因为有很多键啊,ARDUINO自带的这些口肯定不够用的。我想做一个外部的键盘电路,按下一个键的时候,就把一个特定的值返回到ARDUINO上去。这个需要用串口通信了是吗?


还有个问题,就是多个按键一起按下的时候怎么判断呢?因为键比较多,用IF ELSE这种组合来判断肯定是不行的了。



希望有做过类似电路的朋友给指点一下啊,多谢!!~~

林定祥 发表于 2014-4-28 13:08:36

找找坛子里的按键方案吧,应该类似。

文少 发表于 2014-4-29 02:09:32

用74HC165来扩展吧,一个芯片出8个按键~~

Stormer 发表于 2014-4-29 04:03:16

文少 发表于 2014-4-29 02:09 static/image/common/back.gif
用74HC165来扩展吧,一个芯片出8个按键~~

非常感谢你的建议。只是这个芯片只能输出八个按键啊。如果我24键的话,就需要用3块芯片。而且,给ARDUINO连接的时候,也只能发送0、1这样的信号。同时还会占用好多接口。

我现在的目标是,自己设计制作一个扩展电路,这个电路只有一条(或者2、3条)连线,这个连线可以反馈一个2位或者3位的数字信号给主板。主板接收到这个数字后就可以很清楚的知道我按下的哪个键了。3位的话都能支持到999个键了。2位足够。

我是菜鸟啊,1个月前电阻的色环都不会看呢。。。现在就希望高手们可以给我指点一个方法就OK了。具体实现我再慢慢研究制作。

春泥蛋炒饭 发表于 2014-4-29 08:55:01

其实你的需求就是一个完整的电脑键盘可以满足。你可以找一个老式的PS/2键盘,或者USB键盘转PS/2口,然后用arduino现成的PS2库来读取编码,除了电源,只需要两根线

春泥蛋炒饭 发表于 2014-4-29 09:08:08

才发现你要把读取电子琴的键盘,那简单了,电子琴都有MIDI口输出,arduino有MIDI信号读写的程序。

Stormer 发表于 2014-4-29 12:49:13

春泥蛋炒饭 发表于 2014-4-29 09:08 static/image/common/back.gif
才发现你要把读取电子琴的键盘,那简单了,电子琴都有MIDI口输出,arduino有MIDI信号读写的程序。

多谢大神! 没有用猫做头像还是认出你来啦~ :D

文少 发表于 2014-4-29 14:55:52

Stormer 发表于 2014-4-29 04:03 static/image/common/back.gif
非常感谢你的建议。只是这个芯片只能输出八个按键啊。如果我24键的话,就需要用3块芯片。而且,给ARDUINO ...

1个或多个165串接起来,都是占用4个IO。
哪个按键按下,相应的数据位就有效,可单按可复按,互不干涉。
按键判断也不用加DELAY,参考官网 http://playground.arduino.cc/Code/ShiftRegSN74HC165N

另一种方法就是有人提到的MIDI,前提是你要使用MIDI键盘。
MIDI方法,你要熟悉MIDI的协议才好弄,你要判断0x90和0x80的开关音符指令,还涉及到单键,多键,不放手再按的情况,你不熟悉这些的话,几乎搞不了~~

Stormer 发表于 2014-5-1 06:01:32

文少 发表于 2014-4-29 14:55 static/image/common/back.gif
1个或多个165串接起来,都是占用4个IO。
哪个按键按下,相应的数据位就有效,可单按可复按,互不干涉。
...

了解了,再次感谢 :)
页: [1]
查看完整版本: 【求助】电子琴按键的问题