话不多说,直接上码:

/* Author: Waao666* Created on 2020-1-7  * Version 1.0 */
/* 以下部分是定义是把每个音符和频率值对应起来*  A+数字:表示音符;*  AH+数字:表示上面有点的那种音符;*  AL+数字:表示下面有点的那种音符*/
#define A0 0
#define A1 441
#define A2 495
#define A3 556
#define A4 589
#define A5 661
#define A6 742#define AL1 221
#define AL2 248
#define AL3 278
#define AL4 294
#define AL5 330
#define AL6 371
#define AL7 416#define AH1 882
#define AH2 990
#define AH3 1112
#define AH4 1178
#define AH5 1322
#define AH6 1484
#define AH7 1665
/******************************************//********** 这部分是用英文对应了拍子 **********/
#define WHOLE 1
#define HALF 0.5
#define QUARTER 0.25
#define EIGHTH 0.25
#define SIXTEENTH 0.625
/******************************************//* 这部分就是整首曲子的音符部分,用了一个序列定义为tune,整数 */
int tune[] = {A0,A0,A0,A3,A5,A6,A0,A0,A5,A6,A0,A0,A5,A6,AH1,A5,A6,A3,A0,A3,A5,A6,A0,A0,A5,A6,A0,A0,A5,A6,AH3,AH1,AH2,A6,A0,A3,A5,A6,A0,A0,A5,A6,A0,A0,A5,A6,AH1,A5,A6,A3,A5,A1,A2,A3,AH1,A6,AH3,AH2,AH3,AH2,AH1,AH2,A6,A0,A6,A6,A6,A6,AH1,AH2,AH3,A6,A6,A6,A5,A5,A6,A6,A6,A6,A6,AH1,AH2,AH3,A6,A6,A6,AH4,AH4,AH3,A6,A6,A6,A6,AH1,AH2,AH3,A6,A6,A6,A5,A5,A6,A6,A6,A6,A6,AH1,AH2,AH3,AH6,A5,A5,A6,A6
};
/****************************************************//* 这部分是整首曲子的接拍部分,也定义个序列duration,浮点(数组的个数和前面音符的个数是一样的) */
float duration[]= {1,1,1,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,1,1,1,1,0.5,0.25,0.25,0.5,0.5,1,1,1,1,1,0.25,0.25,0.25,0.25,1,1,0.5,0.5,0.5,0.5,1,1,1,0.25,0.25,0.25,0.25,1,1,0.5,0.5,0.5,0.5,1,1,1,0.25,0.25,0.25,0.25,1,1,0.5,0.5,0.5,0.5,1,1,1,0.25,0.25,0.25,0.25,1+0.5,0.5,0.5,0.5,1
};
/**********************************************************************************/int length;     /* 这里定义一个变量,后面用来表示共有多少个音符 */
int tonePin=12; /* 蜂鸣器的pin */void setup()
{/* 设置蜂鸣器的pin为输出模式 */pinMode(tonePin,OUTPUT);/* 这里用了一个sizeof函数,可以查出tone序列里有多少个音符 */length = sizeof(tune)/sizeof(tune[0]);
}void loop()
{/* 循环音符的次数 */for(int x=0;x<length;x++){/* 此函数依次播放tune序列里的数组,即每个音符 */tone(tonePin,tune[x]);/* 每个音符持续的时间,即节拍duration,450是调整时间的越大,曲子速度越慢 */delay(450*duration[x]);/* 停止当前音符,进入下一音符 */noTone(tonePin);}/* 等待5秒,重新开始循环 */delay(5000);
}

Arduino Uno 蜂鸣器播放《千本樱》相关推荐

  1. Arduino Uno 蜂鸣器播放《天空之城》

    话不多说,直接上码: /* Author: Waao666* Created on 2020-1-7 * Version 1.0 */ /* 以上部分是定义是把每个音符和频率值对应起来 */ #def ...

  2. 一种非常简单的用arduino控制蜂鸣器播放音乐的方案

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 今天来聊聊用arduino控制蜂鸣器播放音乐的方案,当然必须还是老风格,虽然可能不是最 ...

  3. Arduino实验——蜂鸣器播放《致爱丽丝》

    蜂鸣器,是一种可以发出单调声音的器件,在电子 DIY 领域应用广泛,因为它使用简单,不像扬声器一样需要用准确的音频信号来控制.蜂鸣器分为有源蜂鸣器和无源蜂鸣器.其中 "源" 不是指 ...

  4. mixly编程怎样音乐_使用mixly和Arduino结合蜂鸣器播放音乐

    蜂鸣器结合Arduino播放<蜗牛和黄鹂鸟>歌曲 首先挑好想做的歌曲的简谱. 比如我想做<蜗牛和黄鹂鸟> 然后对照音阶对应的频率表来写代码 撤销:Ctrl/Command + ...

  5. Arduino控制蜂鸣器播放音乐

    框架结构 //引用pitches.h库文件 #include "pitches.h" int melody[] = {//以下都是音符(do,re,mi,fa,so,la,xi)N ...

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

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

  7. Arduino Uno R3开发(1)——据说通过蜂鸣器可以播放《鸡你太美》?

    昨天写了一篇RFID开发,但是视频课程太难,只能从更基础的Arduino Uno R3 开发进行学习 一起进行Arduino Uno R3的学习吧,我之前从未接触硬件 如果奔着鸡你太美来的直接翻到最后 ...

  8. Arduino Uno 送你一首葫芦娃 无源蜂鸣器实验

    本次实验使用的是无源蜂鸣器,播放一首葫芦娃 无源指的是不包含振荡源, 相对于有源蜂鸣器,就是包含振荡源. 无源需要2k-5k的方波来驱动发声,所以音色多变. 有源则通电就能蜂鸣,发音频率固定,音色单一 ...

  9. Arduino红外遥控无源蜂鸣器播放音乐

    Arduino红外遥控无源蜂鸣器播放音乐/模拟电子琴 简介 关于频谱 实验材料 接线 实验代码 模拟电子琴 接线 代码 总结 原文链接:https://www.yourcee.com/newsinfo ...

最新文章

  1. 01.MyBatis快速入门
  2. 学习笔记:CentOS 7学习之十一:文件的重定向
  3. 华为平板电脑_华为对标微软推平板电脑 能否打造软件生态?
  4. 基于ext4j的带jar文件的java程序打包方法
  5. sql server 2012中red gate的sql source control消失
  6. 使用函数式编程方式-递归
  7. Bailian3164 奇偶排序【排序】
  8. 关闭Mac的Microsoft AutoUpdate弹框提示
  9. 【IoT】产品模型:基于 ARM 的音视频采集与传输系统
  10. 【毕业设计】超声波红外自动调速风扇系统 - 单片机 嵌入式
  11. NXP JN5169 唤醒定时器
  12. LVS负载均衡群集(理论+实验)
  13. 自动化测试处理银行密码输入框
  14. c语言编程为啥弹出的框会闪退,js中提示框闪退问题
  15. matlab人脸识别样本库建立,facenet 人脸识别(二)——创建人脸库搭建人脸识别系统...
  16. plotwidget横坐标日期_matlab中如何画以日期为横坐标的图?
  17. 华为od试题java_华为od社招一面凉经
  18. 大数据与云计算:进入技术爆发期
  19. 挽回前男友的方法(挽回必看)
  20. Eclipse插件的8种安装方式

热门文章

  1. java数字(double/float)向上取整,向下取整,四舍五入
  2. 如果Spring中有两个ID相同的Bean,会报错吗?
  3. 2021年全球车辆到电网(V2G)收入大约33百万美元,预计2028年达到2008.7百万美元,2022至2028期间,年复合增长率CAGR为 79.9%
  4. php 内置函数大全
  5. Unity 相机跟随人物的几种方式
  6. CentOS 8 最新阿里YUM源
  7. 打造智能化交通出行的关键技术依仗-智慧交通
  8. 【macOS付费软件推荐】第1期:Final Cut Pro、Motion Compressor
  9. 工作日记 day03
  10. java多线程 从入门到出家