更强的代码

#define NOTE_0  -1

#define NOTE_A1 441

#define NOTE_A2 495

#define NOTE_A3 556

#define NOTE_A4 589

#define NOTE_A5 661

#define NOTE_A6 742

#define NOTE_A7 833

#define NOTE_AL1 221

#define NOTE_AL2 248

#define NOTE_AL3 278

#define NOTE_AL4 294

#define NOTE_AL5 330

#define NOTE_AL6 371

#define NOTE_AL7 416

#define NOTE_AH1 882

#define NOTE_AH2 990

#define NOTE_AH3 1112

#define NOTE_AH4 1178

#define NOTE_AH5 1322

#define NOTE_AH6 1484

#define NOTE_AH7 1665

#define NOTE_B1 495

#define NOTE_B2 556

#define NOTE_B3 589

#define NOTE_B4 661

#define NOTE_B5 742

#define NOTE_B6 833

#define NOTE_B7 935

#define NOTE_BL1 248

#define NOTE_BL2 278

#define NOTE_BL3 294

#define NOTE_BL4 330

#define NOTE_BL5 371

#define NOTE_BL6 416

#define NOTE_BL7 467

#define NOTE_BH1 990

#define NOTE_BH2 1112

#define NOTE_BH3 1178

#define NOTE_BH4 1322

#define NOTE_BH5 1484

#define NOTE_BH6 1665

#define NOTE_BH7 1869

#define NOTE_C1 262

#define NOTE_C2 294

#define NOTE_C3 330

#define NOTE_C4 350

#define NOTE_C5 393

#define NOTE_C6 441

#define NOTE_C7 495

#define NOTE_CL1 131

#define NOTE_CL2 147

#define NOTE_CL3 165

#define NOTE_CL4 175

#define NOTE_CL5 196

#define NOTE_CL6 221

#define NOTE_CL7 248

#define NOTE_CH1 525

#define NOTE_CH2 589

#define NOTE_CH3 661

#define NOTE_CH4 700

#define NOTE_CH5 786

#define NOTE_CH6 882

#define NOTE_CH7 990

#define NOTE_D1 294

#define NOTE_D2 330

#define NOTE_D3 350

#define NOTE_D4 393

#define NOTE_D5 441

#define NOTE_D6 495

#define NOTE_D7 556

#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 589

#define NOTE_DH2 661

#define NOTE_DH3 700

#define NOTE_DH4 786

#define NOTE_DH5 882

#define NOTE_DH6 990

#define NOTE_DH7 1112

#define NOTE_E1 330

#define NOTE_E2 350

#define NOTE_E3 393

#define NOTE_E4 441

#define NOTE_E5 495

#define NOTE_E6 556

#define NOTE_E7 624

#define NOTE_EL1 165

#define NOTE_EL2 175

#define NOTE_EL3 196

#define NOTE_EL4 221

#define NOTE_EL5 248

#define NOTE_EL6 278

#define NOTE_EL7 312

#define NOTE_EH1 661

#define NOTE_EH2 700

#define NOTE_EH3 786

#define NOTE_EH4 882

#define NOTE_EH5 990

#define NOTE_EH6 1112

#define NOTE_EH7 1248

#define NOTE_F1 350

#define NOTE_F2 393

#define NOTE_F3 441

#define NOTE_F4 495

#define NOTE_F5 556

#define NOTE_F6 624

#define NOTE_F7 661

#define NOTE_FL1 175

#define NOTE_FL2 196

#define NOTE_FL3 221

#define NOTE_FL4 234

#define NOTE_FL5 262

#define NOTE_FL6 294

#define NOTE_FL7 330

#define NOTE_FH1 700

#define NOTE_FH2 786

#define NOTE_FH3 882

#define NOTE_FH4 935

#define NOTE_FH5 1049

#define NOTE_FH6 1178

#define NOTE_FH7 1322

#define NOTE_G1 393

#define NOTE_G2 441

#define NOTE_G3 495

#define NOTE_G4 556

#define NOTE_G5 624

#define NOTE_G6 661

#define NOTE_G7 742

#define NOTE_GL1 196

#define NOTE_GL2 221

#define NOTE_GL3 234

#define NOTE_GL4 262

#define NOTE_GL5 294

#define NOTE_GL6 330

#define NOTE_GL7 371

#define NOTE_GH1 786

#define NOTE_GH2 882

#define NOTE_GH3 990

#define NOTE_GH4 1049

#define NOTE_GH5 1178

#define NOTE_GH6 1322

#define NOTE_GH7 1484

//以上部分是定义是把每个音符和频率值对应起来,其实不用打这么多,但是都打上了,后面可以随意编写各种歌,我这里用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

//这部分是用英文对应了拍子,这样后面也比较好看

#define DURATION 400//每个音符持续的时间,400是调整时间的越大,曲子速度越慢,越小曲子速度越快,自己掌握吧

int t1[] =

{

NOTE_DH1,NOTE_D6,NOTE_D5,NOTE_D6,NOTE_0,

NOTE_DH1,NOTE_D6,NOTE_D5,NOTE_DH1,NOTE_D6,NOTE_0,NOTE_D6,

NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D6,NOTE_0,NOTE_D6,

NOTE_DH1,NOTE_D6,NOTE_D5,NOTE_DH1,NOTE_D6,NOTE_0,

NOTE_D1,NOTE_D1,NOTE_D3,

NOTE_D1,NOTE_D1,NOTE_D3,NOTE_0,

NOTE_D6,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D6,

NOTE_D5,NOTE_D1,NOTE_D3,NOTE_0,

NOTE_DH1,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D6,

NOTE_D5,NOTE_D1,NOTE_D2,NOTE_0,

NOTE_D7,NOTE_D7,NOTE_D5,NOTE_D3,

NOTE_D5,

NOTE_DH1,NOTE_0,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D5,NOTE_D6,NOTE_D6,

NOTE_0,NOTE_D5,NOTE_D1,NOTE_D3,NOTE_0,

NOTE_DH1,NOTE_0,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D5,NOTE_D6,NOTE_D6,

NOTE_0,NOTE_D5,NOTE_D1,NOTE_D2,NOTE_0,

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_0,NOTE_D7,NOTE_D5,

NOTE_D6

};

//这部分就是整首曲子的音符部分,用了一个序列定义为tune,整数

float d1[]=

{

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 t2[] =

{

NOTE_CL6, NOTE_CL6, NOTE_C1, NOTE_C2,

NOTE_C3, NOTE_C5,

NOTE_C6, NOTE_CL6, NOTE_C1, NOTE_C2,

NOTE_C3,

NOTE_C2, NOTE_C2, NOTE_C2, NOTE_C3,

NOTE_C5 , NOTE_C5, NOTE_C5, NOTE_C6,

NOTE_C3,

NOTE_CL6, NOTE_CL6, NOTE_C1, NOTE_C2,

NOTE_C3, NOTE_C5,

NOTE_C6, NOTE_CL6, NOTE_C1, NOTE_C2,

NOTE_C3,

NOTE_C2, NOTE_C2, NOTE_C2, NOTE_C3,

NOTE_C5,NOTE_C5,NOTE_0,NOTE_CL5,

NOTE_CL6

};

float d2[]=

{

1,1,1,1,3,1,1,1,1,1,4,1,1,1,1,1,1,1+1,4,1,1,1,1,3,1,1,1,1,1,4,1,1,1,1,1,1,1,1,4

};

//同上

int tonePin =6;//定义数字11 接口

int potpin=0;   //定义模拟接口0

int inpin =13 ;//定义数字7 接口

int val;//定义变量val

int gal=0;

int length;//这里定义一个变量,后面用来表示共有多少个音符

void setup()

{

pinMode(tonePin,OUTPUT);//定义小灯接口为输出接口

pinMode(inpin,INPUT);//定义按键接口为输入接口

length = sizeof(t1)/sizeof(t1[0]);//这里用了一个sizeof函数,可以查出tone序列里有多少个音符

lcd.begin(16, 2);  //初始化LCD

}

void loop()

{

while(1)

gal=analogRead(potpin);

val=digitalRead(inpin);//读取数字7 口电平值赋给val

{

if(val==HIGH)//检测按键是否按下

{

if (gal<=30)

{

for(int x=0;x

{

tone(tonePin,t1[x]);//此函数依次播放tune序列里的数组,即每个音符

delay(400*d1[x]);//每个音符持续的时间,即节拍duration,400是调整时间的越大,曲子速度越慢,越小曲子速度越快,自己掌握吧

noTone(tonePin);//停止当前音符,进入下一音符

if(val==LOW) break;//加上这一句就行了

}

}

else

{

if(gal<=60 and gal>=30)

{

for(int x=0;x

{

tone(tonePin,t2[x]);//此函数依次播放tune序列里的数组,即每个音符

delay(DURATION*d2[x]);

noTone(tonePin);//停止当前音符,进入下一音符

if(val==LOW) break;

}

}

}

}

}

}

arduino 嗡鸣器 音乐_Arduino教程——蜂鸣器发声相关推荐

  1. arduino 嗡鸣器 音乐_Arduino 控制蜂鸣器播放《小星星》歌曲

    这里使用的是无源蜂鸣器. 直接上程序:Arduino 控制蜂鸣器播放<小星星> int speakerPin = 9; int length = 15; // the number of ...

  2. arduino 嗡鸣器 音乐_Arduino 蜂鸣器音乐代码转化程序开发

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 最近在做利用蜂鸣器播放音乐的实验,其中环节有以下:1.查找需要播放的音乐简谱.2.对照简谱以及Arduino本身自带库里面的音乐实例toneMelody翻 ...

  3. arduino 嗡鸣器 音乐_arduino蜂鸣器怎么输出指定的音乐

    展开全部 给你个音乐程序,你先试试.#define NTD0 -1 #define NTD1 294 #define NTD2 330 #define NTD3 350 #define NTD4 39 ...

  4. arduino 嗡鸣器 音乐_【arduino】继续蜂鸣器音乐播放,arduinoIDE里调用音乐播放库...

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 昨天简单的介绍了一下蜂鸣器硬件和米思齐上如何演奏音乐(一种非常简单的用arduino控 ...

  5. arduino 嗡鸣器 音乐_[求助]怎样实现红外遥控蜂鸣器播放音乐,求大神指正

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #define NOTE_0 -1#define NOTE_A1 441 #define NOTE_A2 495 #define NOT ...

  6. arduino ps2摇杆程序_arduino教程系列16-PS2摇杆/游戏摇杆实验 arduino入门,arduino教程...

    PS2摇杆一般可以用来控制小车等等,其构造主要就是两个10K的电位器,还有一个按键开关.五个端口分别为VCC,X,Button,Y,GND. 先来看看实物图 2011-8-30 17:56 上传 (1 ...

  7. Arduino触摸屏MP3音乐播放器和闹钟项目

    在这个项目中,我将向您展示如何制作Arduino触摸屏MP3音乐播放器和闹钟.您可以观看以下视频或阅读下面的书面教程. Arduino触摸屏MP3音乐播放器和闹钟项目 概述 主屏幕具有大时钟,日期和温 ...

  8. Ardino基础教程 7_蜂鸣器发声实验

    实验七:蜂鸣器发声 用Arduino 可以完成的互动作品有很多,最常见也最常用的就是声光展示了,前面一直都是在用LED 小灯在做实验,本个实验就让大家的电路发出声音,能够发出声音的最常见的元器件就是蜂 ...

  9. stm32无源蜂鸣器定时器_使用STM32控制无源蜂鸣器发声播放音乐

    [实例简介] 利用GPIO控制无源蜂鸣器发声,播放音乐.使用SysTick延时,使用位带操作寻址IO口引脚. [实例截图] [核心代码] pMusic ├── CMSIS │   ├── core_c ...

最新文章

  1. 弱网测试用什么农_弱网测试(一)
  2. java虚拟机6.HotSpot的GC实现
  3. 第一个 Dubbo 应用
  4. 解决PyCharm中报出 “Shadows built-in name xxx“ 的警告
  5. 非阻塞IO与异步IO
  6. 配送A/B评估体系建设实践
  7. Python抓取豆瓣电影详情并提取信息
  8. iOS企业证书申请介绍
  9. 如何使用github和git进行团队合作开发(队友和owner的仓库连接)
  10. 第十四届全国大学生智能汽车竞赛获奖名单
  11. 繁凡的 ACM 退役记(一名普通算法竞赛选手与博主的竞赛生涯回忆录)凡是过往,皆为序章
  12. HttpPrinter共享打印机 网络打印
  13. AutoCAD二次开发学习记录一:批量统计dwg文件数据
  14. 20162327WJH第二次实验——树
  15. 电子书-CHM-上线CS
  16. 《高等代数学》(姚慕生),例1.5.10
  17. 机房环动监控系统作用
  18. 网管必知:常用电脑密码破解
  19. 减治法(Decrease and Conquer)
  20. FastDfs与ElasticSearch和Mysql完成海量数据存储搜索功能

热门文章

  1. 深圳网络信息安全员(NSACE初级)认证招生简章
  2. sencha app watch php,Sencha Cmd 命令及 ExtJs 应用的调试工具
  3. 封建日本挑战赛:电影/视觉特效角色获奖者访谈
  4. 驰骋BPM-新增功能发布-签批组件
  5. win10 php命令行,win10自带播放器 rmvb_大学 计算机文化基础教程 win 7_win php 命令行...
  6. 在线导航测试软件,性能测试三:无网络状态下导航_软件资讯软件评测-中关村在线...
  7. 银河麒麟V10系统 syslog和kern.log文件过大问题解决,定时清理日志文件
  8. Fine-grained Classification 论文调研
  9. android怎样生成固定的aes密钥,关于android:如何更改AES 128的密钥数量
  10. ZYNQ7000系列入门之GPIO点灯