Arduino蜂鸣器唱歌

Arduino源码:

    /*************以下变量无需修改**********************/int note[21][7]={                  /*标准频率对照表*//*A-G大调降音*/  {221,248,278,294,330,371,416},             //A大调{248,278,294,330,371,416,467},             //B大调{131,147,165,175,196,221,248},             //C大调{147,165,175,196,221,248,278},             //D大调{165,175,196,221,248,278,294},             //E大调{175,196,221,248,278,294,330},             //F大调{196,221,248,278,294,330,371},             //G大调/*A-G大调标准音*/{441,495,556,624,661,742,833},{495,556,624,661,742,833,935},{262,294,330,350,393,441,495},{294,330,350,393,441,495,556},{330,350,393,441,495,556,624},{350,393,441,495,556,624,661},{393,441,495,556,624,661,742},/*A-G大调升音*/{882,990,1112,1178,1322,1484,1665},{990,1112,1178,1322,1484,1665,1859},{525,589,661,700,786,882,990},{589,661,700,786,882,990,1112},{661,700,786,882,990,1112,1178},{700,786,882,990,1112,1178,1322},{786,882,990,1112,1178,1322,1484},};/*************以下变量依据实际修改****************/int buzzerPin = 13;              /*蜂鸣器引脚位置*/int BPM = 400;                  /*一拍的时间*/int Scale = 4;                  /*设置大调,A-Z分别对应1-7*/float rate = 0.1;               /*发声时间占一拍时间的比率*//*****TMD 蜂鸣器唱歌真难听*****/天空之城int pitch[] ={6, 7, 1, 7, 1, 3, 7, 3, 6, 5, 6, 1, 5, 3, 4, 3, 4, 1, 3, 1, 7, 4, 4, 7, 7, 6, 7, 1, 7, 1, 3, 7, 3, 3, 6, 5, 6, 1, 5, 3, 4, 1, 7, 1, 2, 3, 1, 1, 1, 7, 6, 7, 5, 6, 6, 6, 1, 2, 3, 2, 3, 5, 2, 2, 2, 5, 1, 7, 1, 2, 3, 3, 3, 3, 3, 6, 7, 1, 7, 1, 2, 1, 5, 5, 5, 4, 3, 2, 1, 3, 3, 3, 3, 6, 6, 5, 5, 3, 2, 1, 1, 1, 2, 1, 2, 5, 3, 3, 3, 3, 6, 6, 5, 5, 3, 2, 1, 1, 1, 2, 1, 2, 7, 6, 6, 6, 0,};int rise[] ={0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,};float mlength[] ={0.500, 0.500, 1.500, 0.500, 1.000, 1.000, 3.000, 1.000, 0.500, 1.000, 1.000, 1.000, 3.000, 1.000, 1.500, 0.500, 0.500, 1.500, 3.000, 1.000, 1.500, 0.500, 0.500, 1.000, 3.000, 0.500, 0.500, 1.500, 0.500, 1.000, 1.000, 3.000, 0.500, 0.500, 1.500, 0.500, 1.000, 1.000, 3.000, 1.000, 1.000, 0.500, 1.500, 1.000, 1.000, 0.500, 0.500, 2.000, 0.500, 0.500, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 0.500, 0.500, 1.500, 0.500, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.500, 0.500, 1.000, 0.500, 0.500, 1.000, 1.000, 1.000, 1.000, 0.500, 0.500, 1.000, 0.500, 0.500, 1.000, 1.500, 0.500, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.500, 0.500, 1.500, 0.500, 0.500, 0.500, 1.000, 1.000, 1.000, 1.500, 0.500, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.500, 0.500, 1.500, 0.500, 0.500, 0.500, 1.000, 1.000, 1.000, 1.500, 0.500, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000,};/*两只老虎int pitch[] ={1, 2, 3, 1, 1, 2, 3, 1, 3, 4, 5, 3, 4, 5, 5, 6, 5, 4, 3, 1, 0, 0, 1, 2, 3, 1, 1, 2, 3, 1, 3, 4, 5, 3, 4, 5,};int rise[] ={1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,};float mlength[] ={1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 2.000, 1.000, 1.000, 2.000, 0.500, 0.500, 0.500, 0.500, 1.000, 1.000, 1.000, 3.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 2.000, 1.000, 1.000, 2.000,};*//*追光者*//*int pitch[] ={0, 0, 0, 0, 6, 7, 1, 7, 3, 3, 5, 5, 1, 2, 1, 2, 2, 5, 3, 6, 7, 1, 7, 3, 3, 5, 1, 5, 1, 2, 3, 1, 7, 6, 7, 1, 1, 3, 2, 7, 6, 5, 6, 7, 7, 2, 1, 0, 1, 7, 1, 0, 6, 6, 7, 1, 7, 6, 5, 0, 1, 2,};int rise[] ={1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2,};*/float mlength[] ={1.000, 1.000, 1.000, 0.500, 0.250, 0.250, 0.500, 0.250, 0.250, 0.500, 0.500, 1.000, 1.000, 0.500, 0.250, 0.250, 0.500, 0.500, 1.000, 0.500, 0.500, 0.500, 0.250, 0.250, 0.500, 0.500, 1.000, 3.000, 0.500, 0.500, 1.000, 0.500, 0.500, 0.500, 0.250, 0.250, 0.500, 0.500, 1.000, 0.500, 0.500, 0.500, 0.250, 0.250, 0.500, 0.500, 1.000, 0.500, 0.250, 0.250, 1.000, 0.250, 0.250, 0.250, 0.250, 0.500, 0.500, 0.500, 0.500, 1.000, 0.500, 0.500,};void setup() {pinMode(buzzerPin,OUTPUT);}void loop() {int i;int Frequency;int toneTime,notoneTime;for(i = 0;i < sizeof(note) / sizeof(int);i++){if(pitch[i] != 0){Frequency = note[Scale + rise[i] * 7 ][pitch[i]];toneTime = mlength[i] * BPM * rate;notoneTime = mlength[i] * BPM - toneTime;tone(buzzerPin,Frequency);delay(toneTime);delay(notoneTime);noTone(buzzerPin);}else delay(BPM * mlength[i]);  }delay(10000);}`

c语言简谱格式转换

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{int pitch[1000];int rise[1000];float mlength[1000];float get[1000];int i;int length;for (i = 0; i < 1000; i++){scanf_s("%f", get + i);if (get[i] == -1)break;else{pitch[i] = get[i] / 100;rise[i] = (get[i] - 100 * pitch[i]) / 10;mlength[i] = get[i] - 100 * pitch[i] - 10 * rise[i];}}length = i - 1;printf("int pitch[] =\n");printf("{\n");for (i = 0; i <= length; i++){printf("%d, ", pitch[i]);}printf("\n};\n");printf("int rise[] =\n");printf("{\n");for (i = 0; i <= length; i++){printf("%d, ", rise[i]);}printf("\n};\n");printf("float mlength[] =\n");printf("{\n");for (i = 0; i <= length; i++){printf("%.3f, ", mlength[i]);}printf("\n};\n");system("pause");return 0;
}

Arduino蜂鸣器唱曲天空之城相关推荐

  1. 51单片机蜂鸣器播放天空之城

    51单片机蜂鸣器播放天空之城 附:天空之城乐谱 第三张图片中65行46968改为64968,希望凉解.(由于本人对乐谱知之甚少,上述有关音符代码由网络提供.如有错误,敬请雅正.)

  2. Arduino 蜂鸣器播放音乐LED灯闪烁

    一.实验所需组件: led灯 三脚蜂鸣器 面包板 Arduino开发板 杜邦线 二.实验原理 蜂鸣器实现音乐播放: 控制好频率和节拍,就能演奏出好听的音乐.因此,在实验之前要先弄清楚各音调的频率.可参 ...

  3. Arduino 蜂鸣器播放音乐

    蜂鸣器 根据发声原理不同分为电压式蜂鸣器和电磁式蜂鸣器.我们使用的是电磁式蜂鸣器,接通电源后,振动膜片周期性的振动发声.需要注意的一点是,发声是在内部有电流产生磁场,使得膜片振动的一瞬间. 如果内部一 ...

  4. Arduino 蜂鸣器

    Arduino 蜂鸣器 前言 电路图 源码 效果图 前言 好好学习天天向上 电路图 源码 //定义蜂鸣器接口 int buzzerpin=8;void setup() {pinMode(buzzerp ...

  5. Arduino 蜂鸣器+按键 (按一下响一声)

    Arduino 蜂鸣器+按键 (按一下响一声) 写在前面 这次的蜂鸣器和按键组合依旧没什么难度,和上一篇的数码管+LED灯一样,非要说作用的话就是锻炼整合代码的能力吧 说正经的 好像也没什么需要准备的 ...

  6. Arduino应用笔记(一)利用蜂鸣器播放天空之城

    这是本科时候做的,前两天翻到了以前写的程序,就找了出来. 我用的是Arduino UNO,利用面包板搭建电路,将蜂鸣器一端连到数字5引脚,另一端接地. 代码如下: #define NOTE_D0 -1 ...

  7. arduino蜂鸣器_板卡推荐BPIUNO32 arduino 开发板,支持webduino与arduino应用

    BPI:UNO32(也称为BPI-UNO32,被称为BPI UNO32)是一个带有Xtensa 32位LX6的单/双核心处理器的嵌入式系统的ESP32.支持Webduino和arduino的功能. B ...

  8. arduino蜂鸣器音乐代码青花瓷_教你用 Arduino 制造简易金属探测器

    金属探测器,听上去有点高端,下面我们只用一个 Arduino.10 米长的铜丝线.一个 100 欧电阻和一个无源蜂鸣器来制造它.可以根据需要将探测器设计成各种尺寸和形状,不同之处在于线圈的制作.虽然这 ...

  9. Arduino+蜂鸣器制作有趣的小音乐

    Arduino相关姿势 Arduino是一个开源的硬件平台,包括开发套组(开发板和相关的模块以及连线)和IDE,开发语言基于C.核心是一块8位ATmega328的处理器,这块处理器是AVR单片机系列的 ...

  10. Arduino+蜂鸣器奏响欢乐斗地主

    文章目录 tone()函数 简谱知识 音的高低 音的长短 arduino中音的高低表示方法 代码 tone()函数 Arduino 的 tone()函数可以在一个引脚上产生一个特定频率的方波,占空比 ...

最新文章

  1. 记一次性能优化,单台 4 核 8G 机器支撑 5 万 QPS
  2. python开发需要掌握哪些知识-Python基础进阶需要掌握哪些知识点?
  3. python3和2的区别大吗_python3和2为什么区别大吗
  4. 分别描述TCP的3次握手和四次挥手的定义、目的和过程
  5. php paerser,GitHub - iSinser/sinser-php-sdk: 迅析PHP SDK
  6. c++ list排序_排序(二)交换排序
  7. Flex及AIR开发资源集合
  8. Android官方源码资料博客
  9. java代码表示非空链表整数_Leetcode: Topic 2 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的.......
  10. 不要在作死的边缘试探(最后那个英雄手势挺好玩儿的)
  11. MAC读取NTFS移动硬盘方法
  12. 智云通CRM:销售就是讲故事?
  13. 振荡电路设计原理与设计
  14. python机械臂仿真_机械臂 python
  15. 更改Ubuntu 18.04的时区
  16. 黑盒子法探索人脑逻辑模型备忘录
  17. 5g通用模组是什么_目前主流的5G模组有哪些?
  18. 关于在ubuntu server 14.04上安装docker以及git之笔记
  19. ssm培训课程管理系统的微信小程序
  20. 面试入职工作感悟:在阿里的那些风花雪月的日子

热门文章

  1. countif函数比较两列不同_Excel如何对比两列姓名找出两列相同和不同的姓名有哪些方法...
  2. 8分之七怎么用计算机,如何用八屏电脑看盘
  3. 有了5G手机和套餐,如何正确使用5G网络?
  4. Java线程何时放弃CPU时间片
  5. 亚马逊多账号操作如何判断关联
  6. JAVA 方法知识总结
  7. SSRF漏洞理解进阶SSRF+gopher打内网(redis、mysql、fastcgi) SSRF相关基础概念
  8. Git对G码云上项目的上传及同步
  9. K2+Padavan拿下校园网锐捷认证
  10. android 调用短信,Android实现接收短信和发送短信功能