Arduino

您所在的位置:网站首页 arduino蜂鸣器停止发声 Arduino

Arduino

#Arduino| 来源: 网络整理| 查看: 265

蜂鸣器实验

什么是蜂鸣器?蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”等)表示。

实验器件:

■ 有源蜂鸣器器:1 个

■ 面包板:1个

■ 多彩面包板实验跳绳:若干

实验连线

将代码上传到开发板。

程序代码

#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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3