arduino学习笔记二十--无源蜂鸣器+ARDUINO开发板播放音乐
无源蜂鸣器+ARDUINO开发板播放音乐
用到材料
1个无源蜂鸣器
2根杜邦线
一片开发板
原理图
蜂鸣器长脚的为正,短脚为负极。
在蜂鸣器的底下也有标价正负。
接好线,选择喜欢的程序
1超级玛丽 扬声器
2蜂鸣器唱歌 小星星 国际歌
3模拟防控警报的响声
提供 3个测试程序,自己选择自己喜欢的下载玩玩。
代码:
超级玛丽
/*Play Super Mario theme song with Arduino and speakercircuit:* 8-ohm speaker on digital pin 8created 4 June 2011by naozhendang.comreference:http://arduino.cc/en/Tutorial/Tone*/#define NOTE_B0 31#define NOTE_C1 33#define NOTE_CS1 35#define NOTE_D1 37#define NOTE_DS1 39#define NOTE_E1 41#define NOTE_F1 44#define NOTE_FS1 46#define NOTE_G1 49#define NOTE_GS1 52#define NOTE_A1 55#define NOTE_AS1 58#define NOTE_B1 62#define NOTE_C2 65#define NOTE_CS2 69#define NOTE_D2 73#define NOTE_DS2 78#define NOTE_E2 82#define NOTE_F2 87#define NOTE_FS2 93#define NOTE_G2 98#define NOTE_GS2 104#define NOTE_A2 110#define NOTE_AS2 117#define NOTE_B2 123#define NOTE_C3 131#define NOTE_CS3 139#define NOTE_D3 147#define NOTE_DS3 156#define NOTE_E3 165#define NOTE_F3 175#define NOTE_FS3 185#define NOTE_G3 196#define NOTE_GS3 208#define NOTE_A3 220#define NOTE_AS3 233#define NOTE_B3 247#define NOTE_C4 262#define NOTE_CS4 277#define NOTE_D4 294#define NOTE_DS4 311#define NOTE_E4 330#define NOTE_F4 349#define NOTE_FS4 370#define NOTE_G4 392#define NOTE_GS4 415#define NOTE_A4 440#define NOTE_AS4 466#define NOTE_B4 494#define NOTE_C5 523#define NOTE_CS5 554#define NOTE_D5 587#define NOTE_DS5 622#define NOTE_E5 659#define NOTE_F5 698#define NOTE_FS5 740#define NOTE_G5 784#define NOTE_GS5 831#define NOTE_A5 880#define NOTE_AS5 932#define NOTE_B5 988#define NOTE_C6 1047#define NOTE_CS6 1109#define NOTE_D6 1175#define NOTE_DS6 1245#define NOTE_E6 1319#define NOTE_F6 1397#define NOTE_FS6 1480#define NOTE_G6 1568#define NOTE_GS6 1661#define NOTE_A6 1760#define NOTE_AS6 1865#define NOTE_B6 1976#define NOTE_C7 2093#define NOTE_CS7 2217#define NOTE_D7 2349#define NOTE_DS7 2489#define NOTE_E7 2637#define NOTE_F7 2794#define NOTE_FS7 2960#define NOTE_G7 3136#define NOTE_GS7 3322#define NOTE_A7 3520#define NOTE_AS7 3729#define NOTE_B7 3951#define NOTE_C8 4186#define NOTE_CS8 4435#define NOTE_D8 4699#define NOTE_DS8 4978// notes in the melody:int melody[] = {NOTE_E4, NOTE_E4, NOTE_E4, NOTE_C4, NOTE_E4, NOTE_G4, NOTE_G3,NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3,NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3,NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_C5, NOTE_C5, NOTE_C5,NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_DS4, NOTE_D4, NOTE_C4,NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_G3, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4,NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_G3};// note durations: 4 = quarter note, 8 = eighth note, etc.:int noteDurations[] = {8,4,4,8,4,2,2,3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,3,3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,2,8,8,8,4,4,8,8,4,8,8,3,8,8,8,4,4,4,8,2,8,8,8,4,4,8,8,4,8,8,3,3,3,1,8,4,4,8,4,8,4,8,2,8,4,4,8,4,1,8,4,4,8,4,8,4,8,2};void setup() {// iterate over the notes of the melody:for (int thisNote = 0; thisNote < 98; thisNote++) {// to calculate the note duration, take one second// divided by the note type.//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.int noteDuration = 1000/noteDurations[thisNote];tone(8, melody[thisNote],noteDuration);// to distinguish the notes, set a minimum time between them.// the note's duration + 30% seems to work well:int pauseBetweenNotes = noteDuration * 1.30;delay(pauseBetweenNotes);// stop the tone playing:noTone(8);}}void loop() {// no need to repeat the melody.}
小星星 国际歌
int song[] = {/* 儿歌《小星星》*/277,277,415,415,466,466,415,370,370,330,330,311,311,277,415,415,370,370,330,330,311,415,415,370,370,330,330,311,277,277,415,415,466,466,415,370,370,330,330,311,311,277,/*《国际歌》*/370,494,466,554,494,370,311,415,330,415,554,494,466,415,370,330,311,370,494,466,554,494,370,311,415,330,415,554,494,466,554,659,494,622,554,466,415,466,494,415,466,370,370,330,370,415,415,554,494,466,554,554,466,370,370,330,370,622,494,415,466,494,466,554,494,415,370,622,554,494,370,311,415,330,554,494,466,415,370,370,622,554,370,494,466,466,415,415,415,554,554,622,554,494,370,311,415,330,330,554,494,466,415,370,622,311,622,740,659,622,554,622,659,659,622,622,554,554,494,};int noteDurations[] = {2,2,2,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,1,2,2,2,2,2,1,2,2,1,2,2,2,2,2,1,1,1,2,2,2,2,2,1,2,2,2,2,1,1,1,1,2,2,2,1,2,2,2,2,1,2,2,2,2,2,1,1,1,2,2,1,2,2,2,2,2,1,2,2,2,2,1,1,2,1,2,2,2,1,1,2,1,2,2,2,1,1,2,2,1,1,1,1,1,1,2,1,2,1,2,1,2,2,2,1,1,2,1,2,2,2,2,1,1,1,1,2,1,1,1,1,1,2,2,1,1,2,1,2,1,};
void setup()
{for (int thisNote = 0; thisNote <154; thisNote++){int noteDuration = 1000/noteDurations[thisNote];// 计算每个节拍的时间,以一个节拍一秒为例,四分之一拍就是1000/4毫秒,八分之一拍就是1000/8毫秒tone(8, song[thisNote],noteDuration);int pauseBetweenNotes = noteDuration * 1.10; //每个音符间的停顿间隔,以该音符的130%为佳delay(pauseBetweenNotes);noTone(8);}
}
void loop()
{setup();//反复唱}
模拟防控警报
void setup()
{
}void loop()
{
for(int i=200;i=800;i++) 用循环的方式将频率从200HZ 增加到800HZ
{pinMode(4,OUTPUT);tone(4,i); 在四号端口输出频率
delay(5); 该频率维持5毫秒
}
delay(4000); 最高频率下维持4秒钟
for(int i=800;i=200;i--)
{pinMode(4,OUTPUT);tone(4,i);
delay(10);
}
}
arduino学习笔记二十--无源蜂鸣器+ARDUINO开发板播放音乐相关推荐
- arduino学习笔记二十二--模拟交通信号灯
交通信号灯是交通信号中的重要组成部分,是道路交通的基本语言.交通信号灯由红灯(表示禁止通行).绿灯(表示允许通行).黄灯(表示警示)组成.分为:机动车信号灯.非机动车信号灯.人行横道信号灯.车道信号灯 ...
- Mr.J-- jQuery学习笔记(二十八)--DOM操作方法(添加方法总结)
Table of Contents appendTo appendTo(source, target) 源代码 append prependTo prependTo源码 prepend ...
- 嵌入式系统设计师学习笔记二十八:嵌入式程序设计③——高级程序设计语言
嵌入式系统设计师学习笔记二十八:嵌入式程序设计③--高级程序设计语言 解释程序和编译程序 编译器的工作阶段示意图 语法错误:非法字符,关键字或标识符拼写错误 语法错误:语法结构出错,if--endif ...
- uniapp 学习笔记二十二 购物车页面结构搭建
uniapp 学习笔记二十二 购物车页面结构搭建 cart.vue <template><view><view class="flex padding" ...
- Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用
Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用 大概要写到结尾了,最后几篇就将手册的各常用命令再看一遍,组合一下,并列举出常见的一些有用的操作. DATA_COLOR_MAP数 ...
- JVM 学习笔记二十六、JVM监控及诊断工具-GUI篇
二十六.JVM监控及诊断工具-GUI篇 1.工具概述 使用上一张命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但他们存在下列局限: (1)无法获取方法级别的分析数据,如方法间的调用关系 ...
- JVM 学习笔记二十五、JVM监控及诊断工具-命令行篇
二十五.JVM监控及诊断工具-命令行篇 1.概述 性能诊断是软件工程师在日常工作中经常面对和解决的问题,在用户体验至上的今天,解决好应用软件的性能问题能带来非常大的收益. Java作为最流行的编程语言 ...
- 立创eda学习笔记二十八:在嘉立创购买pcb板并贴片(smt)
完整的写一下,分为两部分: 1.下pcb订单 这个可以看之前写的一个博客: 立创eda学习笔记三:pcb购买_Gutie_bartholomew的博客-CSDN博客 补充一下,买pcb可以直接有几个途 ...
- Linux学习笔记七:下载文件到开发板--搭建TFTP服务器
目录 一.概述 二.Ubuntu 2.1 搭建 2.2 测试 2.3 疑问 三.开发板 3.1 查看IP 3.2 测试网络 3.3 从Ubuntu获取文件 一.概述 前面将交叉编译后的hello文件下 ...
最新文章
- Spark累加器(Accumulator)陷阱及解决办法
- 带有谓词的Java中的函数样式-第2部分
- linux之睡眠函数(my_sleep)
- java将中国标准模式转换成yyyy-mm-nn_java-IO
- Java通过 p12 建立ssl链接
- Entity Resolution(实体解析)
- 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_5 Mybatis中使用Dao实现类的执行过程分析-查询方法1...
- SpringBoot+zk+dubbo架构实践(三):部署Dubbo-admin管理平台
- 决策树CART 代价复杂度剪枝
- Godot Engine:格斗游戏中的必杀技(大招/绝招/特殊技/Special Move )输入系统实现
- 入学校计算机社团申请书,学校社团成立申请书
- Unity游戏开发客户端面经——Unity(初级)
- Cassandra初步学习和性能测试
- Windows7中随意排列图标(自动排列,对齐到网络)
- (筆記) 如何使用Debussy與ModelSim做Co-Simulation? (SOC) (Verilog) (VHDL) (Debussy) (ModelSim)
- Go爬虫colly官方示例二十一【shopify_sitemap】- 使用XPath请求抓取shopify网站地图里url
- C++11~C++20 备忘录
- 贪心算法——会场安排问题
- flash写保护原理_【转】NOR Flash擦写和原理分析
- html 小游戏 五子棋