收藏 分销(赏)

arduino蜂鸣器发声教案.docx

上传人:精**** 文档编号:2281076 上传时间:2024-05-24 格式:DOCX 页数:11 大小:212.49KB 下载积分:8 金币
下载 相关 举报
arduino蜂鸣器发声教案.docx_第1页
第1页 / 共11页
arduino蜂鸣器发声教案.docx_第2页
第2页 / 共11页


点击查看更多>>
资源描述
arduino蜂鸣器发声教案 arduino蜂鸣器发声教案 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(arduino蜂鸣器发声教案)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为arduino蜂鸣器发声教案的全部内容。 第4课 蜂鸣器发声 一、学生情况分析 《蜂鸣器发声》是本课程的第四课,经过上一节课的学习,学生初步了解按钮,掌握选择结构以及数字口的输入,体验Arduino机器人控制和按钮控制LED编程的过程。这一节课主要是让学生们的电路发出声音。 二、教学目标 1。通过制作蜂鸣器发声实验,初步了解蜂鸣器,掌握蜂鸣器的接线方法。 2.体验不同蜂鸣器的不同接线方法以及发出声音的不同要求。 3。体验蜂鸣器编程的过程,激发对编程的兴趣. 三、教学重难点 教学重点:蜂鸣器的连接方法、tone函数的使用 教学难点:tone函数的使用 四、教学流程 1.复习旧知,引入新课。 教师:上节课我们制作了按键控制的LED,其中用到了哪些知识呢? 通过制作按钮控制的LED,初步了解按钮,掌握选择结构以及数字口的输入。按钮控制LED一般应用在走廊的灯、台灯等需要启动才会亮的灯上。今天我们来学习声音,能让电路发出声音的元器件。 出示课题《蜂鸣器发声》。 2.教学新课 (1)元器件介绍 1)蜂鸣器,是一种电子发声元器件,可以发出"beep beep”的声音。蜂鸣器在电路中用字母“FM”、“H"或“HA” 或“ZZG”、“LB”、“JD”等表示。 蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种,两者的区别是:内部是否有震荡源。有源蜂鸣器内部带震荡源,所以只要一通电就会叫;无源蜂鸣器内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K-5K的波形脉冲信号去驱动它。有源蜂鸣器往往比无源的略贵,就是因为里面多个震荡电路。 2)PNP型三极管(型号8550),在该电路中三极管相当于一个开关,其引脚如下图: 1脚=E(发射极,电路图中带箭头的那个) 2脚=B(基极,电路图中跟R相接的那个) 3脚=C(集电极,与E相对的那个) 运行原理如下: 1.当输出高电平,三极管B极与E极间没有电压差,三极管E极与C极间不通,有源蜂鸣器FM没有电流通过,蜂鸣器不响。 2.当输出低电平,三极管B极与E极间形成电压差,三极管E极与C极之间导通,电流通过蜂鸣器FM,如果是有源蜂鸣器,则立即发出beep声。 3)Arduino与蜂鸣器的接线 有源蜂鸣器和无源蜂鸣器脚的数目不同,因此接线方式不同。 无源蜂鸣器模块有三个管脚,其中标注‘-’的管脚接地(GND),中间的管脚接 5V,标注”S"的管脚接信号(数字I/O)。 有源蜂鸣器是一通电就响的,两个脚分别是正负极,两个脚一长一短,短脚为负极,长脚为正极接VCC。 有源蜂鸣器 无源蜂鸣器 (2)基础任务:初步尝试使用无源蜂鸣器发声 1)任务描述 蜂鸣器发出”beep beep”声音,响一秒,停两秒。 2)搭建硬件 无源蜂鸣器模块有三个管脚,其中标注‘-’的管脚接地(GND),中间的管脚接 5V,标注”S"的管脚接信号(数字I/O)。 3)编写程序 (3)基础任务:初步尝试使用有源蜂鸣器发声 1)任务描述 1。当输出高电平,三极管B极与E极间没有电压差,三极管E极与C极间不通,蜂鸣器FM没有电流通过,蜂鸣器不响。 2.当输出低电平,三极管B极与E极间形成电压差,三极管E极与C极之间导通,电流通过蜂鸣器FM,立即发出beep声. 2)搭建硬件 如图,用一个PNP型三极管做为控制开关, 图中FM是蜂鸣器。三极管C极接GND,E极接有源蜂鸣器的负端(短脚),三极管的B极接1K欧姆电阻 。 再接到Arduino D3脚 , 有源蜂鸣器的正端(长脚)接VCC。 3)编写程序 (3)提高任务:蜂鸣器的应用 1)任务描述 使用无源蜂鸣器,播放一首葫芦娃 2)搭建硬件 无源蜂鸣器标注‘-'的管脚接地(GND),中间的管脚接 5V,标注”S”的管脚接信号(数字I/O)。 3)编写程序 #define NOTE_D0 —1 #define NOTE_D1 262 #define NOTE_D2 293 #define NOTE_D3 329 #define NOTE_D4 349 #define NOTE_D5 392 #define NOTE_D6 440 #define NOTE_D7 494 #define NOTE_DL1 147 #define NOTE_DL2 165 #define NOTE_DL3 175 #define NOTE_DL4 196 #define NOTE_DL5 221 #define NOTE_DL6 248 #define NOTE_DL7 278 #define NOTE_DH1 523 #define NOTE_DH2 586 #define NOTE_DH3 658 #define NOTE_DH4 697 #define NOTE_DH5 783 #define NOTE_DH6 879 #define NOTE_DH7 987 //以上部分是定义是把每个音符和频率值对应起来,其实不用打这么多,但是都打上了,后面可以随意编写D调的各种歌,我这里用NOTE_D+数字表示音符,NOTE_DH+数字表示上面有点的那种音符,NOTE_DL+数字表示下面有点的那种音符。这样后面写起来比较好识别。 #define WHOLE 1 #define HALF 0。5 #define QUARTER 0。25 #define EIGHTH 0。25 #define SIXTEENTH 0.625 //这部分是用英文对应了拍子,这样后面也比较好看 int tune[] = { NOTE_DH1,NOTE_D6,NOTE_D5,NOTE_D6,NOTE_D0, NOTE_DH1,NOTE_D6,NOTE_D5,NOTE_DH1,NOTE_D6,NOTE_D0,NOTE_D6, NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D6,NOTE_D0,NOTE_D6, NOTE_DH1,NOTE_D6,NOTE_D5,NOTE_DH1,NOTE_D6,NOTE_D0, NOTE_D1,NOTE_D1,NOTE_D3, NOTE_D1,NOTE_D1,NOTE_D3,NOTE_D0, NOTE_D6,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D6, NOTE_D5,NOTE_D1,NOTE_D3,NOTE_D0, NOTE_DH1,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D6, NOTE_D5,NOTE_D1,NOTE_D2,NOTE_D0, NOTE_D7,NOTE_D7,NOTE_D5,NOTE_D3, NOTE_D5, NOTE_DH1,NOTE_D0,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D5,NOTE_D6,NOTE_D6, NOTE_D0,NOTE_D5,NOTE_D1,NOTE_D3,NOTE_D0, NOTE_DH1,NOTE_D0,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D5,NOTE_D6,NOTE_D6, NOTE_D0,NOTE_D5,NOTE_D1,NOTE_D2,NOTE_D0, NOTE_D3,NOTE_D3,NOTE_D1,NOTE_DL6, NOTE_D1, NOTE_D3,NOTE_D5,NOTE_D6,NOTE_D6, NOTE_D3,NOTE_D5,NOTE_D6,NOTE_D6, NOTE_DH1,NOTE_D0,NOTE_D7,NOTE_D5, NOTE_D6, };//这部分就是整首曲子的音符部分,用了一个序列定义为tune,整数 float duration[]= { 1,1,0.5,0.5,1, 0.5,0.5,0。5,0.5,1,0。5,0。5, 0。5,1,0。5,1,0。5,0.5, 0。5,0。5,0。5,0。5,1,1, 、 1,1,1+1, 0。5,1,1+0.5,1, 1,1,0。5,0.5,1, 0.5,1,1+0。5,1, 0.5,0.5,0.5,0。5,1+1, 0。5,1,1+0.5,1, 1+1,0.5,0.5,1, 1+1+1+1, 0。5,0。5,0。5+0。25,0.25,0。5+0。25,0.25,0.5+0.25,0。25, 0.5,1,0。5,1,1, 0。5,0。5,0.5+0。25,0.25,0.5+0.25,0.25,0。5+0。25,0.25, 0。5,1,0。5,1,1, 1+1,0.5,0.5,1, 1+1+1+1, 0。5,1,0.5,1+1, 0.5,1,0.5,1+1, 1+1,0。5,0。5,1, 1+1+1+1 };//这部分是整首曲子的接拍部分,也定义个序列duration,浮点(数组的个数和前面音符的个数是一样的,一一对应么) int length;//这里定义一个变量,后面用来表示共有多少个音符 int tonePin=9;//蜂鸣器的pin void setup() { pinMode(tonePin,OUTPUT);//设置蜂鸣器的pin为输出模式 length = sizeof(tune)/sizeof(tune[0]);//这里用了一个sizeof函数,可以查出tone序列里有多少个音符 } void loop() { for(int x=0;x<length;x++) { tone(tonePin,tune[x]);//此函数依次播放tune序列里的数组,即每个音符 delay(400*duration[x]);//每个音符持续的时间,即节拍duration,400是调整时间的越大,曲子速度越慢,越小曲子速度越快 noTone(tonePin);//停止当前音符,进入下一音符 } delay(5000);//等待5秒后,循环重新开始 } 3. 拓展提升 如果我们能够控制好频率和节拍,那就有可能演奏出动听的音乐。因此,我们首先需要搞清楚各音调的频率,具体见下表: 低音: 音调 音符 1# 2# 3# 4# 5# 6# 7# A 221 248 278 294 330 371 416 B 248 278 294 330 371 416 467 C 131 147 165 175 196 221 248 D 147 165 175 196 221 248 278 E 165 175 196 221 248 278 312 F 175 196 221 234 262 294 330 G 196 221 234 262 294 330 371 中音: 音调 音符 1 2 3 4 5 6 7 A 441 495 556 589 661 742 833 B 495 556 624 661 742 833 935 C 262 294 330 350 393 441 495 D 294 330 350 393 441 495 556 E 330 350 393 441 495 556 624 F 350 393 441 495 556 624 661 G 393 441 495 556 624 661 742 高音: 音调 音符 1# 2# 3# 4# 5# 6# 7# A 882 990 1112 1178 1322 1484 1665 B 990 1112 1178 1322 1484 1665 1869 C 525 589 661 700 786 882 990 D 589 661 700 786 882 990 1112 E 661 700 786 882 990 1112 1248 F 700 786 882 935 1049 1178 1322 G 786 882 990 1049 1178 1322 1484 我们知道了音调的频率后,下一步就是控制音符的演奏时间。每个音符都会播放一定的时间,这样才能构成一首优美的曲子,而不是生硬的一个调的把所有的音符一股脑的都播放出来.音符节奏分为一拍、半拍、1/4拍、1/8拍,我们规定一拍音符的时间为1;半拍为0。5;1/4拍为0.25;1/8拍为0。125……,所以我们可以为每个音符赋予这样的拍子播放出来,音乐就成了。 根据上表,我们就可以制作出各种各样的歌曲了. 4.课堂总结 通过这节课的学习,我们初步认识和掌握了蜂鸣器的应用,掌握蜂鸣器的接线方法,并能够编写程序实现蜂鸣器发声。 5.布置作业 1)上网搜索蜂鸣器与Arduino控制器还能制作哪些作品,并尝试实现. 2)如何让有源蜂鸣器不要那么响?
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服