设计与开发

触摸按单片机 单片机实例分享,触摸式电钢琴

小编 2024-10-06 设计与开发 23 0

单片机实例分享,触摸式电钢琴

我这次带来的是一款触摸式电钢琴,细心的读者可能会注意到,我用的词是“电钢琴”而不是“电子琴”,这两者有区别吗?我的回答是肯定的,因为这正是本作品的亮点所在。用单片机演奏音乐大家肯定都不会陌生,用单片机内部的定时器,送入不同的频率,每一个频率对应着一个音调,然后按照事先编排好的顺序驱动蜂鸣器发声,就可以演奏出音乐了。至于电子琴,只需要把不同的频率映射到对应按键上即可。之所以说是电子琴,是因为这种方法只能演奏出单调的方波音频。想不想让声音不再单调,而是发出动听的钢琴音色呢?如果想的话,请拿出你的热情,打开你的电烙铁开关,跟我一起往下制作吧!

制作所需的元器件如表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米遥控距离 正品保障-淘宝网

单片机小制作,智能触摸延时开关

功能设计

图1.1 电路原理图

本智能开关的电路如图1.1所示,设计了两种工作模式,分别为静态模式和工作模式。静态模式下,红、绿、黄LED指示灯亮,点阵屏和节能灯都是熄灭状态;工作模式下,相应的LED指示灯熄灭,点阵屏和节能灯开启。

为了使用方便,本智能开关设计了3个触摸按键(见图1.2)。

图1.2 实际效果图(LED下方为触摸式开关,节能灯以220U指示灯代替)

绿键:在静态模式(上电即进入静态模式)下,触摸此键即进入工作模式,绿色指示灯熄灭,节能灯和点阵屏开启,延时1min后转入静态模式。

黄键:在静态模式下,触摸此键则进入工作模式,黄色指示灯熄灭,节能灯和点阵屏开启,延时2min后转入静态模式。

红键:在静态模式下,触摸此键则进入工作模式,红色指示灯熄灭,节能灯和点阵屏开启,延时4min后转入静态模式。

材料准备

表1.1 元器件清单

制作过程

1.测试点阵的行列引脚。因为点阵引脚排列不规则,所以我们需要先测其引脚,然后记录在纸上。注意,每一排引脚有行也有列,一定要耐心测试。

2.将排孔、铜线、LED焊接在万用板上。固定好之后,将点阵屏插到排孔上。注意I/O接口线要平行排列,且上端要做成按钮式,既美观大方又容易触发。

3.将余下的电子元器件焊接在另外一块板上。注意,元器件布局要以连线不交插、美观大方作为两个基本点。还要注意,继电器要远离单片机,防止其干扰单片机电路。

4.按照电路图将元器件连接起来,这个工作很是烦琐,一定要有耐心。注意尽量不要使导线交叉,点阵连接最好用不同颜色的排线连接。

5.用铜柱将两块板子固定在一起。至此,开关的硬件已完工。

软件设计

程序包括主程序、初始化程序、触摸键检测子程序、提醒显示子程序、定时器0溢出中断子程序。

初始化程序除了对继电器、3个LED指示灯、点阵屏进行设置外,还必须将P0置1设为高阻输入状态,这是实现触摸功能的前提。

触摸键检测子程序的任务是根据触摸键操作来执行相应的处理程序,例如,触摸了绿指示灯的触摸按键,接下来单片机要执行4个任务:(1)打开定时器中断;(2)打开继电器,开启节能灯;(3)熄灭绿指示灯;(4)调用提醒显示子程序。注意,触摸键检测子程序需检测单片机引脚高电平,跟普通按键正好相反,当然消抖延时也是必不可少的。

提醒显示子程序的任务是显示所在位置的楼层数。

定时器中断的任务是延时一段时间,然后关掉定时器中断、继电器及提醒显示子程序,打开对应指示灯。定时器延时时间的到来需用中断次数和标志位相与作为判定条件。

另外,要提醒大家几点,调试的时候应该根据出现的现象分析程序哪一部分有问题,程序尽量条理清晰、模块化,以节省调试时间。切记不要使用交流电源,那样对触摸键的干扰会很大。编程部分难度不大,我相信,只要用心编写,耐心调试,把错误一步一步改正过来,大家会很快享受到电子制作带给我们的快乐。

相关问答

哪个 单片机 自带 触摸按 键和lcd功能?

触摸的单片机有,新塘,赛普拉斯,昆泰,ST,飞思卡尔,TI,ADS…触摸的单片机有,新塘,赛普拉斯,昆泰,ST,飞思卡尔,TI,ADS…

触摸按 键乱跳是 单片机 坏了吗?

不一定。触摸按键乱跳可能是由于电源干扰、程序问题或者触摸按键本身的质量问题所导致的。建议先检查电源和程序,如果发现问题依旧存在,则需要进一步检查触摸...

触摸 芯片和 单片机 区别?

芯片架构上没啥区别都是同一架构设计。应用端不同而已。芯片架构上没啥区别都是同一架构设计。应用端不同而已。

51 单片机 怎么与 触摸 屏连接?

实现51单机片与触摸屏连接有四个步骤:1触摸屏与单片机的硬件联接2建立触摸屏与单片机的内部存储器地址对应关系3触摸屏组态软件编辑4MODBUSRTU(远程...

单片机触摸 开关原理是什么?_土巴兔装修问答

原理如下:触摸开关是由微电子元件构成,无机械触点和机械运动。具有开关特性好、动态响应快、无触点,弱电控制等特点。需要输入控制信号时,利用人手...

怎么检测 单片机 的好坏?

第一步:从表象来判断:首先我们可以用手去触摸单片机的表面(小心烫到手),看是否发烫?如果发烫,极有可能就是单片机坏掉了,有些甚至直接冒烟。为了进一步...

弹簧按钮原理?

触摸弹簧按键工作原理:触摸弹簧按键大多单片机触摸式电器的专用弹簧按键,它是用钢化玻璃触摸面板与弹簧触摸按键直接接触,有时我们又叫它触摸感应弹簧或...

触控按键电梯有什么安全隐患?

对于很多大电梯来讲,比如货梯或者载客量较多的电梯,它们所使用的电压为380V,所以控制系统就不可能使用直接控制,而是使用低压控制高压的方法,比如单片机PLC...

义隆 单片机 只能烧写一次吗?

单片机的烧录次数有多少?单片机能烧录多少次是根据存储器类型决定的!不同存储器类型烧录擦写次数、示例单片机:掩膜存储器,1次,亿义隆单片机;(一般工...单...

我是大一学生(开学大二),学习 单片机 之前应该先学会什么,具备什么能力,还有开发 单片机 软件用什么?

我在扩展PCB上已经设计了一个焊接AVR单片机Mega64/128的位置,可方便的替换现在的MCU,这款MCU的内存可达128KROM、4KRAM,基本可以满足移植uCOSII的要求,...

猜你喜欢