[原创] 3个八度的电子琴

ginny   2017-4-3 21:12 楼主
[media]http://player.youku.com/player.php/sid/XMjY4MjAyNzQxNg==/v.swf[/media]
制作一个简易的电子琴方法还是挺多的,比如可以用555制作,也可以用51单片机。
下面介绍怎么用51单片机制作一个具有3个八度的电子琴。
基本思路:用51单片机的定时器在IO上产生一定频率的高低电平,通过修改定时器的计数值实现调节高低电平的频率,
最后IO驱动扬声器发出该频率的声音。
电路图
1.BMP
3个八度的电子琴,主控芯片使用STC12C4052AD。
电路上总共采用9个按键,8个为音节按键,1个为音调切换按键,可选音调为:低音、中音、高音。
准备材料
2.jpg
焊接电路
3.jpg
4.jpg
制作成品
8.gif
程序代码
10.JPG
完整代码见附件。
本帖最后由 ginny 于 2017-4-3 21:12 编辑
喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派

回复评论 (32)

使用感受:试玩的时候发现音调切换不方便,只有一个按键切换,如果要从低音调换成高音调,需要按两次。所以需要更好的效果话可以把音调切换用三个独立按键来实现。

本人是个电子DIY发烧友,喜欢我的制作可以来公众号e_diy_c捧场哦
喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派
点赞  2017-4-3 21:13
厉害
点赞  2017-4-3 23:14
好厉害!!!
点赞  2017-4-3 23:14
做的还不错,电路也很简单。
点赞  2017-4-4 08:15
把创意变成实物的都是好样的
点赞  2017-4-4 15:21
STC芯片的复位电路可以去掉,音频部分通过耦合电容隔直流后再来一级LM386功放,效果更佳。
点赞  2017-4-4 15:25
3个8度, 频率范围超不过8倍, 如二百多到2000HZ, 真正的难度是频率精度和失真度, IO输出的单音含有丰富的谐波, 偶次谐波好听, 奇次谐波难听. 如何迎合耳朵的偏好才是重点
YesWatt艺瓦特电子科技有限公司 傻大粗电源转换器制造商 https://apu5ob0ydv0ysskfm03hs4dtqfr97j68.taobao.com/
点赞  2017-4-4 21:53
3个8度, 频率范围超不过8倍, 如二百多到2000HZ, 真正的难度是频率精度和失真度, IO输出的单音含有丰富的谐波, 偶次谐波好听, 奇次谐波难听. 如何迎合耳朵的偏好才是重点
YesWatt艺瓦特电子科技有限公司 傻大粗电源转换器制造商 https://apu5ob0ydv0ysskfm03hs4dtqfr97j68.taobao.com/
点赞  2017-4-4 21:54
钢琴的音域是所有乐器中最宽的(9个八度), 也不过20~8000Hz, 单片机产生这样的方波是轻而易举, 但要做出钢琴的音色, 那用DSP也要看编程的功底和对音乐及乐器的了解 本帖最后由 PowerAnts 于 2017-4-4 21:58 编辑
YesWatt艺瓦特电子科技有限公司 傻大粗电源转换器制造商 https://apu5ob0ydv0ysskfm03hs4dtqfr97j68.taobao.com/
点赞  2017-4-4 21:57
引用: 吴下阿蒙 发表于 2017-4-4 15:25
STC芯片的复位电路可以去掉,音频部分通过耦合电容隔直流后再来一级LM386功放,效果更佳。

一开始本打算用电容耦合,可惜加上电容竟然没有声音,后来就没有加了,不知道什么情况,猜测是电流太小吧。
喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派
点赞  2017-4-5 22:39
引用: PowerAnts 发表于 2017-4-4 21:53
3个8度, 频率范围超不过8倍, 如二百多到2000HZ, 真正的难度是频率精度和失真度, IO输出的单音含有丰富的谐 ...

用51的脉冲现在估计做不了太好的音质,后期打算用DA做一个。
喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派
点赞  2017-4-5 22:41
引用: PowerAnts 发表于 2017-4-4 21:57
钢琴的音域是所有乐器中最宽的(9个八度), 也不过20~8000Hz, 单片机产生这样的方波是轻而易举, 但要做出钢琴 ...

对音乐音频音律不是特别了解,51要发出真正钢琴的声音有难度,我做的这个音质和钢琴没法比的,所以只能取名电子琴。
喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派
点赞  2017-4-5 22:44
可以试试用micropython来实现。比用51单片机更容易。
点赞  2017-4-5 22:52
引用: ginny 发表于 2017-4-5 22:41
用51的脉冲现在估计做不了太好的音质,后期打算用DA做一个。

有PWM的话, 用查表法弄个SPWM, RC滤波就能得到比较漂亮的正弦波了. 目的: 尽量不要产生3次,5次谐波, 太难听了. 钢琴的琴弦, 基本上是正弦输出, 若是给合成合弦(大三小三,增三减三等) 那就太美妙了, 不会弹钢琴, 不知道是否如吉它那样也有和弦. 不过, 有的音乐倒也不要求纯正弦波, 比如电吉它还故意加个失真器, 产生撕破的音效. 我小孩前不久把笛膜弄破了, 声音好难听, 不过上孩吹的很高兴, 说破声音真好听. 怪了...
YesWatt艺瓦特电子科技有限公司 傻大粗电源转换器制造商 https://apu5ob0ydv0ysskfm03hs4dtqfr97j68.taobao.com/
点赞  2017-4-5 22:58
小小石头激起万丈巨浪,这贴子好
点赞  2017-4-6 16:01
引用: dcexpert 发表于 2017-4-5 22:52
可以试试用micropython来实现。比用51单片机更容易。

python编程会比c快些,只是现在还没玩过micropython,买了板子后可以试一下
喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派
点赞  2017-4-6 19:34
引用: PowerAnts 发表于 2017-4-5 22:58
有PWM的话, 用查表法弄个SPWM, RC滤波就能得到比较漂亮的正弦波了. 目的: 尽量不要产生3次,5次谐波, 太难 ...

看来你对乐器发声还是有研究的啊。最初我也是认为单片机直接给出的高低脉冲发出的声音肯定不好听,
所以就打算用电容把电流波形弄平滑些,可惜加上电容后扬声器竟然不响,没有查出原因所以就没加了。

钢琴没有接触过,但之前看了一期综艺节目,说钢琴也有和弦。吉他我在学,和弦是基本功。
怎么说呢,现在大部分音乐都经过失真处理,对于普通大众来说失真的声音反而好听,
所以大家都喜欢给音乐调音效,什么《3D丽音》啊、《超重低音》啊。
喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派
点赞  2017-4-6 19:47
引用: ginny 发表于 2017-4-6 19:34
python编程会比c快些,只是现在还没玩过micropython,买了板子后可以试一下

可以试试。现在论坛正在进行newbit活动,它完全兼容microbit,支持micropython,可以直接播放音乐。
点赞  2017-4-6 20:11
引用: ginny 发表于 2017-4-6 19:47
看来你对乐器发声还是有研究的啊。最初我也是认为单片机直接给出的高低脉冲发出的声音肯定不好听,
所以 ...

这可不敢当, 我其实对乐器没什么了解, 二十几年前玩过一年多吉它, 也忘得差不多了.
我的电脑里有七八百个音乐文件, 基本上是很轻柔的那种, 我喜欢听轻音乐, 平淡的唱调, 不喜欢那些嘶声力竭的摇滚. 当然了, 我也有几个效果文件, 不过只听过一次.
无标题212.png
YesWatt艺瓦特电子科技有限公司 傻大粗电源转换器制造商 https://apu5ob0ydv0ysskfm03hs4dtqfr97j68.taobao.com/
点赞  2017-4-6 21:17
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复