单片机实例分享,触摸式电钢琴
我这次带来的是一款触摸式电钢琴,细心的读者可能会注意到,我用的词是“电钢琴”而不是“电子琴”,这两者有区别吗?我的回答是肯定的,因为这正是本作品的亮点所在。用单片机演奏音乐大家肯定都不会陌生,用单片机内部的定时器,送入不同的频率,每一个频率对应着一个音调,然后按照事先编排好的顺序驱动蜂鸣器发声,就可以演奏出音乐了。至于电子琴,只需要把不同的频率映射到对应按键上即可。之所以说是电子琴,是因为这种方法只能演奏出单调的方波音频。想不想让声音不再单调,而是发出动听的钢琴音色呢?如果想的话,请拿出你的热情,打开你的电烙铁开关,跟我一起往下制作吧!
制作所需的元器件如表9.1所示。本着精简制作的原则,笔者用到的都是很普通的元器件,数量也很少,所以硬件制作的难度不是很大。连接部分则是过锡走线加飞线的方法,烙铁温度在350℃左右即可。电路图如图9.1所示,值得说明的一点是,图中的矩阵触摸按键这里只画出了1组,其实有3组,公共端分别与P0.0、P2.2、P2.1连接。剩下部分的电路都很明了,有创造力的朋友看电路图自行发挥就好,新手可以参考一下我的布局。
表9.1 制作所需的元器件
图9.1 电路原理图
先把打印好的琴键图片裁好,用双面胶贴在洞洞板上,如图9.2所示。
图9.2 在洞洞板上贴琴键图片
怎么样,是不是很有电钢琴的样子?你说触摸按键在哪里?别着急,让我请出下面这位特别来宾——钉书针。为了整个制作的美观和手感,触摸点的选取费了我很大的心思,试了很多种导体都无法达到满意的效果,直到有一天无意中把钉书针掉在了洞洞板上,我发现它那细长又导电的身体,长度刚刚好可以插进洞洞板,才有了这个有趣的设计。如图9.3所示,按照琴键的位置插好钉书针,并在背面压紧。
以此类推,完成36个键不会像你想象的那么枯燥,美妙的琴声在等着你。之后用双面胶把扬声器粘在板子正面,并完成扬声器导线、单片机、下载口、拨动开关、耳机插座、LED、功放芯片以及电解电容的焊接。焊接好的样子如图9.4所示。
图9.3 插入钉书钉
图9.4 焊接好的琴键
接下来是触摸按键矩阵与单片机的连接,我的方法是过锡加飞线。先把单片机正下方的一组矩阵按键与两边矩阵的公共端过锡连接到I/O口上(见图9.5),然后用免刮漆包线把两侧矩阵要与I/O连接的地方同中间过锡部分连接起来(见图9.6)。
图9.5 洞洞板焊接面的过锡
图9.6 用免刮漆包线进行飞线连接
到这里,原本硬件制作部分就应该完成了,但是在后期测试的过程中,总会有上电时乱响的情况。仔细思考后,发现了问题所在:因为触摸按键是基于增强型51单片机的I/O口高阻状态(下文会详细介绍),这种状态对电流的波动很敏感,会受到电源杂波的干扰。所以在正极和地之间加了一个0.1μF电容,效果有很大好转。顺便一提,使用电池供电效果最好。
到此就剩下载程序了,可以到qq群657864614下载相关程序,然后用STC-ISP软件下载到单片机里。注意,如果单片机是新的或者上一次使用连接了晶体振荡器的话,要先连接好晶体振荡器才能下载程序。软件设置如图9.7所示。
图9.7 软件设置
如果我现在结尾,肯定有人说我不地道,因为大家最想听的软件原理我还没有说明。别急,听我娓娓道来。
先说触摸吧,前面提到I/O口的高阻状态,在这种状态下I/O口对电流很敏感,那是不是只要接触I/O口,就能用人体的生物电完成触摸了呢?哎,好事多磨,虽然它很敏感,但是生物电的强度还是不能稳定地被感应。怎么办呢?冷静下来想一想,只要再请一个强推状态的I/O口来帮忙就好办了。所谓强推状态,就是比普通准双向I/O口上拉能力强很多的一种状态。这样,在我们同时触碰这两个I/O时,强推I/O口的电流就通过皮肤流入高阻状态的I/O口,从而读到电平变化,实现触摸操作。
这么好用的功能怎么设置呢,大家可以参照STC数据手册里的设置方法。当我们用C语言设置I/O状态时,只需向P*M1、P*M0赋值(0x开头的16进制格式)即可,如图9.8所示。
图9.8 用C语言设置功能
接下来到了发音部分。把要播放的音频先在电脑上用专业的音频软件转换成 ASCII Test 数据,稍加改造变成数组后放入单片机 60KB 的 ROM 里,配合 PWM 解码程序,一个在你进门时甜美地说出“你好,欢迎光临”,一个则是在你触摸琴键后发出钢琴的音色。
专业的音频软件有很多,我用的是一款名为“Adobe Audition 3.0”的软件。简洁的界面、强大的功能,都是我选择它的原因。接下来要讲的是使用方法,准备好从网上下载到的音频,你可以用鼠标拖入音轨中,也可以对着一条空音轨单击“右键→插入→音频”来把你的音频放入音轨中。这时音轨可能没有紧贴前端,这样会制造出一段空白音频,这部分不但影响正常工作,还很占空间,用右键点住它向前拖动,直到与前端紧贴,如图9.9所示。
之后双击“音频”,进入编辑模式。在这个模式下,我们要做的是删除空白和扩大音量。向上滚动滑轮,让时间间隔变小,前端的空白就会变得明显,去除它的原因跟上面一样。我们用左键框选出空白部分,然后单击“右键→剪切”来删除空白,如图9.10所示。
图9.9 Adobe Audition3.0界面
图9.10 删除空白音频
随后按“Ctrl+A”快捷键全选波形,单击左边效果栏里的“放大”,调整好合适的放大倍数后,单击“确认”,以完成放大操作,见图9.11。
图9.11 扩大音量
单击左上角的“文件→另存为”,这时会弹出一个选择格式和保存路径的窗口,下方的保存类型我们选择“ACW波形(*.wav)”,单击下方的选项,滤波器处改为“PCM”,属性处改为“8.000kHz,8位,单声道”,然后“确定→保存”,如果弹出窗口点击确定即可,见图9.12。这样就把音频转成了8位单声道,为后面的数据表文件做好了准备。
图9.12 保存音频文件
接下来软件会自动载入刚刚保存的音频,再单击左上角的“文件→另存为”,在弹出的窗口里选择“ASCII 文本数据(*.txt)”,然后单击下方的选项,把两个勾选框的对勾都点掉,再单击“确定→保存”,就完成了ASCII Test数据的转换,如图9.13所示。
图9.13 ASCII Test数据转换
这样重复36次之后,我们就得到了36个音调的8位音频数据了。打开电钢琴的工程文件,在程序的C语言文件下方有36个用音调名命名的数据表文件。只要把刚刚生成的数据复制到对应数据表中就大功告成了。
不过要注意开始处数组的定义和每个数据后的逗号,编译器可不会被你的急切所打动。我这里只是抛砖引玉,感兴趣的话可以在网上找到更多乐器的音色,让它变得更好玩、更强大。在茶余饭后悄悄拿出它,为家人弹奏一曲。简单的儿歌,或者经典的旋律,不管你音乐水平的高低,总能在家人欢乐的笑声中感受到电子制作带给你的幸福!
■我的淘宝店铺:首页-数码达人小李-淘宝网,主打数码电脑周边产品,性价比高,发货快,服务好,品质过硬,现有满减优惠活动,赶快行动起来吧!小米车载无线充电器 苹果安卓全兼容手机无线快充通用 导航支架-淘宝网
usb迷你电风扇 学生宿舍床上静音小夹扇 办公桌面无声风扇-淘宝网
动漫鼠标垫胸部 3D硅胶护腕手腕垫 二次元美女鼠标垫 宅男必备-淘宝网
2013款雷蛇鼠标炼狱蝰蛇精英版 绿光幻彩有线 绝地求生专用-淘宝网
得力激光ppt翻页笔无线 教师用遥控笔 30米遥控距离 正品保障-淘宝网
电容器典型应用电路(10)扬声器分频电容电路
在扬声器分频电容电路中,使用分频电容的目的是使高音扬声器工作在高音频段,低音扬声器工作在低音频段。
1、下图所示是二分频电路中的分频电容电路,电路中C1是功率放大器输出端耦合电容,C2是无极性分频电容。
1)全频域音频信号
从功率放大器输出端耦合电容C1输出的是全频域音频信号,即高音、中音、低音信号都有,由于分频电容C2的容量设计合理,它对低音和中音信号的容抗大,这样低音和中音信号不能通过C2加到高音扬声器BL2中,而只能通过低音扬声器BL1,下图是低频信号电流回路示意图。
2)高音信号传输过程
由于高音的频率比较高,C2对此频率的容抗小,这样高音信号顺利通过C2加到高音扬声器BL2中,下图是高频信号电流回路示意图
提示:
1)低音扬声器高频特性差,高音信号虽然也能加到低音扬声器上,但是效果不好,所以高音主要有高音扬声器完成。
2)分频电容为无极性电容,由于从C1输出的信号是音频信号(交流信号),而且幅度很大,所以分频电容必须是无极性的,如钽电解电容
有极性电解电容在大信号交流电路中无法正常工作,因为交流信号的极性在不断改变。
2、有极性电解电容逆串联构成的分频电容电路
见下图。有极性电解电容逆串联后,原先有极性的引脚就没有极性了,这样串联后的电容器可以作为无极性电解电容器来使用。这样的电路没有真正无极性电解电容的好
1)大信号正半周工作情况
交流大信号Us正半周时,其电压极性与C1引脚极性一致,如下图所示,正极性电压加到C1的正极,符合有极性电容的工作条件。此时C1能正常工作。
2)大信号负半周工作情况
负半周时,大信号的电压极性与C1引脚极性相反,如下图所示,负极电压加到C1正极,负半周期间C1负极的电压始终高于正极电压,因为C1是有极性电解电容,所以此时C1的漏电流较大,不能够正常工作
3、有极性电解电容在交直流混合电路中的工作原理
下图所示电路可以说明有极性电解电容正常工作时两个引脚的电压情况。
从图中看出,信号Us是直流与交流叠加的信号,交流信号的负峰值也大于0V,也为正电压,如上图所示。
这样,加到C1上的电压极性与C1的引脚极性始终一致,所以有极性电解电容能够正常工作。
相关问答
51 单片机 上面的 扬声器 有两个引脚该怎么接!教学视频上面没给...51单片机上面的扬声器有两个引脚该怎么接!教学视频上面没给我展示怎么接,气人啊!讨论回答(6)上原理图!有原理图吗。这是个5V的蜂鸣器,只要正极输入5V、负极...
单片机 音乐设计目的与意义?它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S...
单片机 ls1是什么?单片机LS1是一个小喇叭发声音的。单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。但在性能上远不如计算机,但单片机成本低、体积小、结构简单...
51 单片机 中如何让蜂鸣器鸣响,小弟已经试过多次了,但蜂鸣器...[最佳回答]首先要确定你的蜂鸣器是有源的还是无源的。有源蜂鸣器直接加电压就能响,但是貌似单片机IO口的驱动级别比较低,带不动蜂鸣器(有声但声音不大)。如果...
proteus里的仿真蜂鸣器怎么设置,怎么接才能响! - 懂得1、首先第一步就是进行双击打开proteus软件,如下图所示。2、接着就是进行在左侧的工具栏中中找到“P”并点击即可。3、然后在弹出的对话框中这时候...
80c51 单片机 p0口地址数据分时复用怎么实现的-ZOL问答在80C51单片机中,P0口地址数据复用是通过硬件设计巧妙地实现的。你可以将P0口的一部分作为输出端口用于数据传输,另一部分保持为输入或高阻态,这样在需要时可以...
汽车CD机通电没声?出现这种情况无非四种可能一功放,二声音处理块,三单片机,四声音输出的电阻电容有问题,功放坏的可能在70%吧,功放一般25个脚,贴在散热器上,一般散热器就是...
手机随机播放音乐的原理是什么?单片机发音原理:利用定时器或pwm功能,输出pwm,经一级有源滤波后放大驱动扬声器。单片机演奏音乐基本是单音频率,它不包含相应幅度的谐波频率,也就是说不能...
通俗点说, 单片机 等于芯片等于通信IC 吗? 本人刚接触电子,期...肯定是芯片啦,单片机属于数字芯片有用(0)回复1017894375首先你要对IC有一定的认识,几乎所有的IC上都是有丝印印上它的型号。比如说STC89C52,IC上定有它的丝...
学 单片机 可以接什么单?学习单片机可以搭建各种电子系统和项目,因此可以接很多不同的单元和硬件。以下是一些常见的单元和硬件,你可以使用单片机与其进行连接和控制:1.传感器:例如...