Arduino+蜂鸣器实现黑人抬棺的音乐

news/2025/3/29 8:18:57/

先上代码

#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_0  0
#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 WHOLE 1
#define HALF 0.5
#define QUARTER 0.25
#define EIGHTH 0.25
#define SIXTEENTH 0.625
int tune[] = //简谱频率
{NOTE_F4,NOTE_F4,NOTE_F4,NOTE_F4,NOTE_F6,NOTE_F6,NOTE_F6,NOTE_F6,NOTE_F5,NOTE_F5,NOTE_F5,NOTE_F5,NOTE_FH1,NOTE_FH1,NOTE_FH1,NOTE_FH1,NOTE_FH2,NOTE_FH2,NOTE_FH2,NOTE_FH2,NOTE_FH2,NOTE_FH2,NOTE_FH2,NOTE_FH2,NOTE_F5,NOTE_F4,NOTE_F3,NOTE_F1,NOTE_F2,NOTE_0,NOTE_F2,NOTE_F6,NOTE_F5,NOTE_0,NOTE_F4,NOTE_0,NOTE_F3,NOTE_0,NOTE_F3,NOTE_F3,NOTE_F5,NOTE_0,NOTE_F4,NOTE_F3,NOTE_F2,NOTE_0,NOTE_F2,NOTE_FH4,NOTE_FH3, NOTE_FH4, NOTE_FH3, NOTE_FH4, NOTE_F2, NOTE_0,NOTE_F2,NOTE_FH4, NOTE_FH3, NOTE_FH4, NOTE_FH3, NOTE_FH4, NOTE_F2, NOTE_0,NOTE_F2,NOTE_F6,NOTE_F5,NOTE_0,NOTE_F4,NOTE_0,NOTE_F3,NOTE_0,NOTE_F3,NOTE_F3,NOTE_F5,NOTE_0,NOTE_F4,NOTE_F3,NOTE_F2,NOTE_0,NOTE_F2,NOTE_FH4,NOTE_FH3, NOTE_FH4, NOTE_FH3, NOTE_FH4, NOTE_F2, NOTE_0,NOTE_F2,NOTE_FH4,NOTE_FH3, NOTE_FH4, NOTE_FH3, NOTE_FH4,
};
float durt[]=                   //根据简谱列出各节拍
{0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5
};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]);delay(500*durt[x]);   //这里用来根据节拍调节延时,500这个指数可以自己调整,在该音乐中,我发现用500比较合适。noTone(tonepin);}}

看过本站上播放葫芦娃的,网上找的astronomia简谱F调,自己弄的,这个是关于蜂鸣器和音乐超级详细的解说,受这个启发做出来的


http://www.ppmy.cn/news/506403.html

相关文章

2022-11-15 vue笔记-路由vue-router(四) 路由守卫(又称路由拦截,导航守卫)的定义以及示例

文章目录 0.路由的概念1.路由守卫的定义定义官方解释路由守卫的分类钩子函数 2.路由守卫的使用场景3.语法:router.beforeEach((to,from,next) > {}4.路由守卫示例:(接前例)为点击Center路由的操作判断是否已登录router.index.jsviews/Login.vue结果 0.路由的概念 路由其实是…

F - Hammer 2

F - Hammer 2&#xff08;ABC273f&#xff09; 题意 高桥是数轴的起源。高桥想在坐标达到目标X. 此外&#xff0c;还有n墙壁和n锤在数轴上。 在坐标是 Y1…Yn 是类型的墙1…n分别。 最初&#xff0c;高桥无法翻墙。 在坐标Z1…Zn ​​​ 是类型的锤子1 、2 、…,n,分别。…

hdf4

#include "mfhdf.h" #pragma comment (lib, "mfhdf.lib") // 打开hdf4文件 // > 0 成功 SDstart // 关闭hdf4文件 SDend // 查询相关属性 // > -1 成功,返回索引 SDfindattr // 读取属性定义 // SUCCEED 成功 SDattrinfo // 读取…

hFE和hfe有什么不同?

Mako&#xff1a;我们已经学习了有关晶体管的工作原理,晶体管的放大作用就是由小的 输入得到大的输出吧? Doc:这种说法还稍微有点欠缺,应 该说成用小的输入控制大的输出更为合适。如果只关注晶体管的电流,就 可以这样考虑,用极小的基极电流IB控制 大的集电极电流I。通常,基极电…

FH

主要是接收网页的请求&#xff1a; com.fiberhome.platform.controller HTML&#xff1a;超文本标记语言是一种用于创建网页的标准标记语言。可以使用HTML来建立自己的WEB站点&#xff0c;HTML运行在浏览器上&#xff0c;由浏览器来解析。 &#xff1a;声明为HTML5文档 <…

FHS

FHS文件系统层级结构标准 文件系统&#xff1a;操作系统用于明确存储设备或分区上的文件的方法和数据结构&#xff1b; (磁盘上组织文件的方法 在操作系统中负责管理和存储文件信息的软件机构) linux层次化文件结构&#xff0c;倒树状结构文件结构 FHS filesystem hierarchy s…

Android四大组件之ContentProvider

1.ContentProvider定义 这里通过一个实际的例子来说明ContentProvider&#xff08;内容提供者&#xff09;是什么&#xff0c;作用是什么 短信应用要访问通讯录应用中的数据&#xff0c;是不能直接访问的&#xff0c;应用通讯录的中的数据是属于通讯录app数据库中的数据&…

EventBus

EventBus 文章目录 EventBus1.EventBus的作用2.关于EventBus的概述3.EventBus的使用方法4.EventBus的黏性事件5.EventBus的源码EventBus的构造方法getDefault()源码EventBus()源码 订阅者注册register()源码findSubscriberMethods()源码findUsingInfo()源码findUsingReflection…