第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连接喇叭正极,GND连接喇叭负…...
Linux用户组管理学习
1.创建一个用户组...
【知识分享】C语言应用-易错篇
一、C语言简介 C语言结构简洁,具有高效性和可移植性,因此被广泛应用。但究其历史的标准定义,C语言为了兼容性在使用便利性作出很大牺牲。在《C陷阱与缺陷》一书中,整理出大部分应用过程中容易出错的点,本文为《C陷阱与…...
六、Json 数据的交互处理
文章目录 一、JSON 数据的交互处理1、为什么要使用 JSON2、JSON 和 JavaScript 之间的关系3、前端操作 JSON3.1 JavaScript 对象与 JSON 字符串之间的相互转换 4、JAVA 操作 JSON4.1 Json 的解析工具(Gson、FastJson、Jackson)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 免…...
【数据结构与算法 模版】高频题刷题模版
废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【】,使用【】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为:目标公…...
EMQ X支持哪些认证方式?
EMQ X 中的认证指的是当一个客户端连接到 EMQ X 的时候,通过服务器端的配置来控制客户端连接服务器的权限。 EMQ X 的认证支持包括两个层面: MQTT 协议本身在 CONNECT 报文中指定用户名和密码,EMQ X 以插件形式支持基于 Username、 ClientI…...
java八股文面试[JVM]——JVM内存结构2
知识来源: 【2023年面试】JVM内存模型如何分配的_哔哩哔哩_bilibili...
《C和指针》笔记14: 作用域和存储类型总结(例子说明)
文章目录 题目答案解释总结 本文是作用域和存储类型的总结,以一个例子来说明,如果不看解释可以很直接地回答每一条语句的作用域和存储类型,那么说明已经很熟练地掌握这个知识点了。 关于作用域和存储类型可以参考我前面的博客: …...
Linux之系统操作参数详解
Linux之系统操作参数详解 date //显示当前日期 日期格式化 %Y year年 %y 年份(以00-99来表示) %j 该年中的第几天 %m month月 (01…12) %w 该周的天数,0代表周日,1代表周一 %D 日期(含年月日) %d day of month (e.g., 01) %T 时间(含时分秒࿰…...
datax 使用
环境准备 List itemLinuxJDK(1.8以上,推荐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宏替换高级用法
创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c系列专栏:C/C零基础到精通 🔥 给大…...
Android 之 传感器专题 (4) —— 其他传感器了解
本节引言: 在上一节的结尾说了,传感器部分因为笔者没怎么玩过,本节就简单的把剩下的几个常用的 传感器介绍一遍,当作科普,以后用到再慢慢研究~ 1.磁场传感器(Magnetic field sensor) 作用:该传感器主要用…...
【高级搜索】双向广搜,A*,IDDFS,IDA *算法总结 (terse版)
一、双向广搜 双向广搜就是从起点和终点同时往中间搜的一个算法。 注意事项: 在搜索过程中,同一层次下的顺序应该为:搜完一边所有的当前深度的子节点,在搜索另一边。 队列使用 (1)合用…...
CATIA Composer R2023安装教程
软件下载 软件:CATIA Composer版本:2023语言:简体中文大小:1.82G安装环境:Win11/Win10/Win8/Win7硬件要求:CPU2.60GHz 内存8G(或更高)下载通道①百度网盘丨64位下载链接:https://pa…...
git,修改远程分支名称
获取所有远程分支 git branch -r删除远程指定分支 git push --delete origin 测试添加新页面提交新命名本地分支 git push origin 新分支本地分支和远程分支关联 git branch --set-upstream-to origin/远程分支...
信息系统项目管理师(第四版)教材精读思维导图-第六章项目管理理论
请参阅我的另一篇文章,综合介绍软考高项: 信息系统项目管理师(软考高项)备考总结_计算机技术与软件专业技术_铭记北宸的博客-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(Java Native Interface)是一…...
力扣-哈希-字母异位词分组
题目 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan", "ate", "nat&q…...
实战分享:如何用本地替换和插桩调试搞定Kasada最新版x-kpsdk-cd环境检测
逆向工程实战:Kasada最新版x-kpsdk-cd环境检测的深度调试策略 在当今Web安全防护体系中,Kasada作为新一代反自动化攻击解决方案,其x-kpsdk-cd机制通过动态加密和运行时环境检测构建了强大的防御层。面对从280位扩展到294位的加密数组和Proxy保…...
2025届学术党必备的六大AI科研工具推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek AI写作软件,是人工智能技术于内容创作领域的具体运用,正一步步改变传…...
【实战】CodeBuddy使用技巧:5个Skills让编程效率翻倍的隐藏操作
目录摘要一、CodeBuddy不只是代码补全1.1 三种形态,覆盖全开发场景1.2 核心差异化二、Craft模式:一句话从0到上线2.1 实测案例:20分钟出一个完整MVP2.2 多模型切换策略2.3 Figma设计稿一键转代码三、5个效率翻倍的独有技巧3.1 技巧1ÿ…...
从编译到定制:WinSCP全流程开发指南
从编译到定制:WinSCP全流程开发指南 【免费下载链接】winscp WinSCP is a popular free file manager for Windows supporting SFTP, FTP, FTPS, SCP, S3, WebDAV and local-to-local file transfers. A powerful tool to enhance your productivity with a user-fr…...
51单片机开发环境搭建指南:从Keil5安装到程序烧录全流程
1. 51单片机开发环境搭建全攻略 刚接触51单片机的朋友可能会被一堆陌生的名词搞懵——Keil5、CH340、HEX文件、烧录工具...别担心,我当初也是这样过来的。今天我就用最直白的语言,手把手带你搭建完整的开发环境。整个过程就像组装乐高积木,只…...
从‘翻车’到稳定:手把手教你用Matlab极点配置驯服小车倒立摆(附Simulink模型)
用Matlab极点配置实现小车倒立摆的精准控制:从理论到Simulink实战 倒立摆系统作为控制理论中的经典案例,完美展现了动态系统稳定控制的挑战与魅力。想象一下,一根垂直向上的杆子放在移动小车上,任何微小的扰动都会导致杆子倾倒——…...
幻兽帕鲁存档迁移完全手册:告别数据丢失的终极解决方案
幻兽帕鲁存档迁移完全手册:告别数据丢失的终极解决方案 【免费下载链接】palworld-host-save-fix 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-host-save-fix 你是否曾在更换幻兽帕鲁服务器时,眼睁睁看着自己辛苦培养的角色数据消失无…...
15分钟掌握OpenShamrock:基于Xposed的OneBot QQ机器人实战指南
15分钟掌握OpenShamrock:基于Xposed的OneBot QQ机器人实战指南 【免费下载链接】OpenShamrock A Bot Framework based on Xposed with OneBot11 项目地址: https://gitcode.com/gh_mirrors/op/OpenShamrock 开篇亮点展示 OpenShamrock是一款基于LSPosed框架…...
春联生成模型快速上手:输入‘幸福‘、‘平安‘等关键词,自动生成对仗工联
春联生成模型快速上手:输入幸福、平安等关键词,自动生成对仗工联 1. 春联生成器简介 春节贴春联是中国人延续千年的传统习俗,但创作一副对仗工整、寓意吉祥的春联并不容易。现在,借助AI技术,任何人都能轻松生成专业水…...
从信息收集到密码爆破:如何用DictGenerate定制你的专属社工字典?
从信息收集到密码爆破:如何用DictGenerate定制你的专属社工字典? 在授权渗透测试和安全评估中,社会工程学攻击往往是最难防御的一环。攻击者通过收集目标的个人信息,精心构造符合目标习惯的密码字典,能够显著提高暴力…...
