当前位置: 首页 > news >正文

第6篇:ESP32连接无源喇叭播放音乐《涛声依旧》

第1篇:Arduino与ESP32开发板的安装方法

第2篇:ESP32 helloword第一个程序示范点亮板载LED

第3篇:vscode搭建esp32 arduino开发环境

第4篇:vscode+platformio搭建esp32 arduino开发环境

第5篇:doit_esp32_devkit_v1使用pmw呼吸灯实验

D5连接喇叭正极,GND连接喇叭负极

一、乐理准备
十二平均律(12-equal temperament)又称十二等程律。

一个八度分成12份,八个八度的十二平均音率对应的频率如下(从33Hz到7902Hz)。

相邻两个音之间的倍数是2^(1/12),约等于1.0594630943592952645618252949463)。这样一来,高八度的do频率是低八度do的两倍。

频率与钢琴上的按键是对应的:

                                        
我们把频率440赫兹作为中央C ,C调的歌就是把频率440赫兹当作do,乐谱中写作:1=C。

相邻的两个音之间的差一个半音,12345671之间的间隔分别是“全全半全全全半”。

D调的歌就是把从440后面第二个音494赫兹当作do,乐谱中写作1=D。
————————————————
示范代码:

#include <Arduino.h>// put function declarations here://定义蜂鸣器控制管脚
#define beep_pin  5   //连无源喇叭// float k=1.0594631;
struct YINFU{       //定义音符int    freq;float  Duration;
};
//1    2   3   4  5    6         7   1   2   3     4    5    6    7
//C    D   E   F  G    A  A#     B   C1  D1, E1,   F1,  G1,  A1,  B1
//440,494,554,587,659,740,784    831,880,988,1109, 1175,1319,1480,1661struct YINFU YUEPU[128]={{831,0.55},	{740,0.15},	{622,0.55},	{740,0.15},	{988,0.3},	{831,0.15},	{740,0.15},	{831,0.8},	{0,0.55},	{0,0.3},	{622,0.3},	{740,0.3},	{831,0.3},	{740,0.3},	{622,0.3},	{494,0.15},	{440,0.15},	{740,0.15},	{622,0.15},	{554,0.4},	{0,0.3},{554,0.3},	{622,0.3},	{740,0.3},	{740,0.3},	{831,0.3},	{622,0.15},	{554,0.15},	{494,0.4},	{0,0.3},	{0,0.3},	{740,0.3},	{622,0.3},	{554,0.15},	{494,0.15},	{440,0.15},	{494,0.15},	{392,0.5},	{0,0.3},	{0,0.3},		};
//涛声依旧
struct YINFU YUEPU_TSYJ[2048]={//6               0     //6           3               5             6          5                     5     {1480,0.55},	{0,0.55},{1480,0.55},	{1109,0.55},	{1319,0.55},	{1480,0.3},	{1319,0.15},{1,0.8},{1319,0.55},   //1            2              3           3                           3  	        5                      6           5           3          2           3 {880,0.35},  {988,0.35},	{1109,0.55},{0,0.3},{1109,0.55},{0,0.15},{0,0.55},{1109,0.15},{1319,0.55},{1480,0.2},{1319,0.2},{1109,0.2},{988,0.2},{1109,0.85},	{1,0.8}, //6               5          3           5          1           6         5                  5     {1480,0.55},	{1319,0.55},{1109,0.15},{1319,0.15},{880,0.55},{740,0.15},{659,0.55},{0,0.3},{659,0.85},//6            1           2                    2{740,0.15},	{880,0.35},	{988,0.55}, {0,0.3},{988,0.55},//2           6            3           5           6          5             5{988,0.15},{1480,0.35},	{1109,0.55},{1319,0.15},{1480,0.35},{1319,0.55},  {1319,0.8}, {1319,0.8},{0,0.8},{0,0.8},{0,0.8},
};void setup() {pinMode(beep_pin, OUTPUT);     //设置引脚为输出模式 
}void loop(){for(int k=0;k<128;k++){        //顺序演奏128音符float d=YUEPU_TSYJ[k].Duration; for(int D=0;D<int(d*YUEPU_TSYJ[k].freq);D++){   //演奏YUEPU[k].freq的音符,时长=dif(YUEPU_TSYJ[k].freq != 0){    //演奏音符//频率转化为时间间隔,1秒=500000微秒*2。一半高电平,一半低电平,所以用500000/音符频率。int freq_to_us=int(500000/YUEPU_TSYJ[k].freq);digitalWrite(beep_pin,HIGH); //一半高电平delayMicroseconds(freq_to_us);digitalWrite(beep_pin,LOW);  //一半低电平delayMicroseconds(freq_to_us);}else{                     //停顿digitalWrite(beep_pin,LOW);  //低电平,不发声  // delayMicroseconds(1000);delay(1000);}}}delay(1000);}

vscode esp32 platformio编译方法参考:

第4篇:vscode+platformio搭建esp32 arduino开发环境 

相关文章:

第6篇:ESP32连接无源喇叭播放音乐《涛声依旧》

第1篇:Arduino与ESP32开发板的安装方法 第2篇:ESP32 helloword第一个程序示范点亮板载LED 第3篇:vscode搭建esp32 arduino开发环境 第4篇:vscodeplatformio搭建esp32 arduino开发环境 第5篇:doit_esp32_devkit_v1使用pmw呼吸灯实验 D5连接喇叭正极&#xff0c;GND连接喇叭负…...

Linux用户组管理学习

1.创建一个用户组...

【知识分享】C语言应用-易错篇

一、C语言简介 C语言结构简洁&#xff0c;具有高效性和可移植性&#xff0c;因此被广泛应用。但究其历史的标准定义&#xff0c;C语言为了兼容性在使用便利性作出很大牺牲。在《C陷阱与缺陷》一书中&#xff0c;整理出大部分应用过程中容易出错的点&#xff0c;本文为《C陷阱与…...

六、Json 数据的交互处理

文章目录 一、JSON 数据的交互处理1、为什么要使用 JSON2、JSON 和 JavaScript 之间的关系3、前端操作 JSON3.1 JavaScript 对象与 JSON 字符串之间的相互转换 4、JAVA 操作 JSON4.1 Json 的解析工具&#xff08;Gson、FastJson、Jackson&#xff09;4.2 ResponseBody 注解、Re…...

企业微信cgi-bin/gateway/agentinfo接口存在未授权访问漏洞 附POC

文章目录 企业微信cgi-bin/gateway/agentinfo接口存在未授权访问漏洞 附POC1. 企业微信cgi-bin/gateway/agentinfo接口简介2.漏洞描述3.影响版本4.fofa查询语句5.漏洞复现6.POC&EXP7.整改意见8.往期回顾 企业微信cgi-bin/gateway/agentinfo接口存在未授权访问漏洞 附POC 免…...

【数据结构与算法 模版】高频题刷题模版

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【】&#xff0c;使用【】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&#xff1a;目标公…...

西门子840DSL 840DPoweLine 刀具数据读取

...

EMQ X支持哪些认证方式?

EMQ X 中的认证指的是当一个客户端连接到 EMQ X 的时候&#xff0c;通过服务器端的配置来控制客户端连接服务器的权限。 EMQ X 的认证支持包括两个层面&#xff1a; MQTT 协议本身在 CONNECT 报文中指定用户名和密码&#xff0c;EMQ X 以插件形式支持基于 Username、 ClientI…...

java八股文面试[JVM]——JVM内存结构2

知识来源&#xff1a; 【2023年面试】JVM内存模型如何分配的_哔哩哔哩_bilibili...

《C和指针》笔记14: 作用域和存储类型总结(例子说明)

文章目录 题目答案解释总结 本文是作用域和存储类型的总结&#xff0c;以一个例子来说明&#xff0c;如果不看解释可以很直接地回答每一条语句的作用域和存储类型&#xff0c;那么说明已经很熟练地掌握这个知识点了。 关于作用域和存储类型可以参考我前面的博客&#xff1a; …...

Linux之系统操作参数详解

Linux之系统操作参数详解 date //显示当前日期 日期格式化 %Y year年 %y 年份(以00-99来表示) %j 该年中的第几天 %m month月 (01…12) %w 该周的天数&#xff0c;0代表周日&#xff0c;1代表周一 %D 日期(含年月日) %d day of month (e.g., 01) %T 时间(含时分秒&#xff0…...

datax 使用

环境准备 List itemLinuxJDK(1.8以上&#xff0c;推荐1.8)Python(2或3都可以)Apache Maven 3.x (Compile DataX) 下载 wget https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz建立datax 用户 useradd datax ; echo "datax" | passwd -…...

【C/C++】#define宏替换高级用法

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…...

Android 之 传感器专题 (4) —— 其他传感器了解

本节引言&#xff1a; 在上一节的结尾说了&#xff0c;传感器部分因为笔者没怎么玩过&#xff0c;本节就简单的把剩下的几个常用的 传感器介绍一遍&#xff0c;当作科普&#xff0c;以后用到再慢慢研究~ 1.磁场传感器(Magnetic field sensor) 作用&#xff1a;该传感器主要用…...

【高级搜索】双向广搜,A*,IDDFS,IDA *算法总结 (terse版)

一、双向广搜 ​ 双向广搜就是从起点和终点同时往中间搜的一个算法。 ​ 注意事项&#xff1a; ​ 在搜索过程中&#xff0c;同一层次下的顺序应该为&#xff1a;搜完一边所有的当前深度的子节点&#xff0c;在搜索另一边。 ​ 队列使用 ​ &#xff08;1&#xff09;合用…...

CATIA Composer R2023安装教程

软件下载 软件&#xff1a;CATIA Composer版本&#xff1a;2023语言&#xff1a;简体中文大小&#xff1a;1.82G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.60GHz 内存8G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pa…...

git,修改远程分支名称

获取所有远程分支 git branch -r删除远程指定分支 git push --delete origin 测试添加新页面提交新命名本地分支 git push origin 新分支本地分支和远程分支关联 git branch --set-upstream-to origin/远程分支...

信息系统项目管理师(第四版)教材精读思维导图-第六章项目管理理论

请参阅我的另一篇文章&#xff0c;综合介绍软考高项&#xff1a; 信息系统项目管理师&#xff08;软考高项&#xff09;备考总结_计算机技术与软件专业技术_铭记北宸的博客-CSDN博客 本章思维导图PDF格式 本章思维导图XMind源文件 目录 6.1 PMBOK的发展 6.2 项目基本要素 6.3…...

[Android]JNI的基础知识

目录 1.什么是JNI 2.配置JNI开发环境NDK 3.创建Native C类型的项目 4. 了解CMakeLists.txt 文件 5.了解native-lib.cpp 文件 6.在 Android 的 MainActivity 中调用 native-lib.cpp 中实现的本地方法 1.什么是JNI JNI&#xff08;Java Native Interface&#xff09;是一…...

力扣-哈希-字母异位词分组

题目 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan", "ate", "nat&q…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染&#xff08;SSR&#xff09;与静态网站生成&#xff08;SSG&#xff09; 框架&#xff0c;由 Vercel 开发。它简化了构建生产级 React 应用的过程&#xff0c;并内置了很多特性&#xff1a; ✅ 文件系…...