Arduino驱动DFPlayer Mini MP3模块

news2024/11/25 10:35:00

文章目录

  • Mini MP3模块
  • 简介
  • 产品参数
  • 引脚定义
  • 实验准备
  • 程序下载
  • 实物接线
  • 总结

Mini MP3模块

在这里插入图片描述

简介

DFPlayer Mini是一款小巧且价格低廉的MP3模块,可以直接接驳扬声器。模块配合供电电池、扬声器、按键可以单独使用,也可以通过串口控制,作为Arduino UNO或者是任何有串口的单片机的一个模块。模块本身完美的集成了MP3、WAV、WMA的硬解码。同时软件支持TF卡驱动,支持FAT16、FAT32文件系统。通过简单的串口指令即可完成播放指定的音乐,以及如何播放音乐等功能,无需繁琐的底层操作,使用方便,稳定可靠。

本次实验我们通过六个按键分别控制MP3模块的播放、暂停、上一曲、下一曲、增大音量、减小音量。

产品参数

*支持采样率(KHz):8/11.025/12/16/22.05/24/32/44.1/48
*24位DAC输出,动态范围支持:90dB,信噪比支持:85dB
*完全支持FAT16、FAT32文件系统,最大支持32G的TF卡,支持32G的U盘、64M字节的NORFLASH
*多种控制模式可选。IO控制模式、串口模式、AD按键控制模式
*广播语插播功能,可以暂停正在播放的背景音乐。广告播放完毕回到背景音继续播放
*音频数据按文件夹排序,最多支持100个文件夹,每隔文件夹可以分配255首曲目
*30级音量可调,6级EQ可调

引脚定义

Mini MP3模块的管脚图如下,这里注意缺口正面朝上的左边第一个引脚就是VCC,不要搞错方向了。本次实验中只需用到全部位于MP3模块左侧的六个引脚:VCC、RX、TX、SPK_1、GND、SPK_2。这里使用的是 8欧、1W的小喇叭,接在SPK_1、SPK_2两个引脚上。
在这里插入图片描述

在这里插入图片描述

实验准备

Arduino开发板1个
Mini MP3模块1个
TF卡1个
8欧1W喇叭1个
按键6个
数据线(用于板子下载程序和供电)1条
杜邦线若干

程序下载

/*
 功能: 六个按键分别控制MP3模块的播放、暂停、上一曲、下一曲、增大音量、减小音量。
 
 接线定义:
Arduino-------dfplayer
5V-------------VCC
GND-----------GND
D10-----------TXD
D11-----------RXD
*/

#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

SoftwareSerial mySoftwareSerial(10, 11); // RX, TX

DFRobotDFPlayerMini myDFPlayer;


void setup()
{
 pinMode(6, INPUT_PULLUP);
  pinMode(7,  INPUT_PULLUP);
  pinMode(9, INPUT_PULLUP);
  pinMode(8, INPUT_PULLUP);
  pinMode(12,  INPUT_PULLUP);
  pinMode(13, INPUT_PULLUP);
mySoftwareSerial.begin(9600);
Serial.begin(9600);

myDFPlayer.begin(mySoftwareSerial);

myDFPlayer.volume(20);   //音量设定为20 

myDFPlayer.enableLoopAll() ;   //循环播放TF卡中 mp3 文件
   

}

void loop()
{
  if( digitalRead(6) == LOW){
   myDFPlayer.volumeUp();
   delay (500);
  } 
  if( digitalRead(7) == LOW){
   myDFPlayer.volumeDown()  ;
   delay (500);
  } 
  if( digitalRead(8) == LOW){
   myDFPlayer.previous()  ;
      delay (500);
  }
  if( digitalRead(9) == LOW){
   myDFPlayer.next() ;
      delay (500);
  }
if( digitalRead(12) == LOW){
   myDFPlayer.start() ;
   delay (500);
  } 
  if( digitalRead(13) == LOW){
   myDFPlayer.pause()  ;
   delay (500);
  } 

}

上述代码整体比较简单,在接线上除了接MP3模块和Arduino外,按键和Arduino的连接也很容易看出来,分别是Arduino的6、7、8、9、12、13号引脚和六个按键相连接,六个按键的另一个引脚都接地就可以了,这样当对应的按键按下被触发后,就会执行程序相应的逻辑实现对Mini MP3模块的控制。

实物接线

在这里插入图片描述

总结

本文介绍了通过Arduino驱动DFPlayer Mini MP3模块进行播放、暂停、上一曲、下一曲、增大音量、减小音量。有兴趣的话大家也可以自己添加更多功能,比如加一个OLED屏幕来显示控制信息。感谢观看!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1048611.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

7.1 为什么要用函数

主要内容: 这段文字主要讲述了为什么要使用函数来进行程序设计,以及函数在程序设计中的重要性和作用。以下是这段文字的主要内容和要点: ### 1. **简化和清晰度** - 当程序规模较大,功能较多时,如果所有代码都写在主…

颜色+情感的英语表达还有这些,零基础学英语口语去哪里,柯桥有推荐的吗?

当我们探讨关于"blue"(蓝色)的多义性时,我们会发现英语中有许多其他词汇也有类似的双关意义。 既可以表示一种颜色或物理属性,又可以代表一种情感或心理状态。 这种现象在语言中很常见,反映了语言的丰富性和…

网址静态码手机制作教程,附图文详解!

网址的静态码是如何生成的呢?静态码是二维码的一种常用类型,一般常见的静态码类型主要是文本或者网址,那么在电脑制作静态码的方法相信很多小伙伴都知道怎么做,那么手机上制作的方法,大家感兴趣吗?下面来给…

百度主动推送不能用了,百度自动推送代码送给大家

从9月初,百度就开始大规模的删除网站,绝对大部分站长的大部分网站都失去了百度主动推送的资格,那么还有其他的方法推送给百度吗? 答案是有的,那就是百度自动推送。我们先来了解一下百度主动推送和百度自动推送的相关知…

【计算机网络笔记十】计算机网络面试问题总结

1. 计算机网络的各层协议及作用? 计算机网络体系可以大致分为一下三种,OSI 七层模型、TCP/IP 四层模型和五层模型。 OSI 七层模型:大而全,但是比较复杂、而且是先有了理论模型,没有实际应用。TCP/IP 四层模型&#x…

Fireboom on Sealos:半小时搞定一个月的接口工作

后端日常开发工作中有 88% 的接口都是 CURD,占用了超过 6 成开发时间。这些工作枯燥乏味,且价值低下,不仅荒废了时间,还无法获得任何成就感。而 Fireboom 可在 2 分钟内,完成传统模式下 2 天才能完成的接口&#xff0c…

实战项目:VB结合数据库实现-登录注册增删改查刷新

文章目录: 一:效果演示 二:实现思路 三:代码实现 form1 效果图 代码 form2 效果图 代码 form3 效果图 代码 一:效果演示 效果图◕‿◕✌✌✌ VB结合数据库实现-登录注册增删改查刷新 代码下载 数据库建表 外接程序—…

CISSP学习笔记:安全模型的原则、设计和功能

第八章 安全模型的原则、设计和功能 8.1 使用安全设计原则实施和管理工程过程 项目开发的早起阶段考虑安全是非常重要的 8.1.1 客体和主体 主体:请求访问资源的用户或进程客体:用户或进程想要的访问信任传递:A信任B并且B信任C&#xff0c…

用Python实现ROS节点(编写简单的消息发布器和订阅器)

用Python实现ROS节点(编写简单的消息发布器和订阅器) 圆圈是节点、中间的chatter是话题 可以用rosrun运行,也可以用python3 直接运行

leetcodetop100(29) K 个一组翻转链表

K 个一组翻转链表 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改…

什么样的人适合学习网络安全?你在其中吗?

有很多想要转行网络安全或者选择网络安全专业的人在进行决定之前一定会有的问题:什么样的人适合学习网络安全?我适不适合学习网络安全? 会产生这样的疑惑并不奇怪,毕竟网络安全这个专业在2017年才调整为国家一级学科,…

施耐德电气:勾勒未来工业愿景,赋能中国市场

9月19日,第23届中国国际工业博览会(简称“工博会”)在上海隆重召开。作为全球能源管理和自动化领域的数字化转型专家,施耐德电气在工博会现场全方位展现了自身对未来工业的全新视野与深刻见解,不仅展示了其贯通企业设计…

中药材商城小程序的作用是什么

古往今来中药材的作用非常大,无论中医院还是相关药材作坊都会有大量人购买,随着互联网电商拓展更多商品类目,中药材也可以通过线上销售,让消费者随时购买到所需商品,商家也能获得更多生意。 那么通过【雨科】平台搭建中…

二、2023.9.28.C++基础endC++内存end.2

文章目录 17、说说new和malloc的区别,各自底层实现原理。18、 说说const和define的区别。19、 说说C中函数指针和指针函数的区别?20、 说说const int *a, int const *a, const int a, int *const a, const int *const a分别是什么,有什么特点…

标题:探寻电大搜题,广东开放大学的智慧之旅

随着信息技术的快速发展和互联网的普及,越来越多的人开始选择通过电大学习。作为知名的广东开放大学,一直致力于提供高质量的教育资源,让更多人实现自己的梦想。在这个过程中,电大搜题微信公众号成为了学生们的得力助手&#xff0…

iTOP-RK3588开发板rknn_multiple_input_demo 体验

这个实例是展示同时输入多个(input1.bin 和 input2.bin)同时输入进行推理识别的例子。按照 3.2 章节设置 ndk 和编译即可,这里只给出编译和运行结果,如下图所示: 编译完成之后如下图所示: 编译完成之后,通 adb 命令在开…

Java新领域—设计

SSM SpringBoot 微信小程序 JSP 安卓

Oracle 11g_FusionOS_安装文档

同事让安装数据库,查询服务器信息发现操作系统是超聚变根据华为openEuler操作系统更改的自研操作系统,安装过程中踩坑不少,最后在超聚变厂商的技术支持下安装成功,步骤可参数该文。 一、 安装环境准备 1.1 软件下载 下载地址:…

【k8s】kubectl命令详解

文章目录 命令行工具 kubectl在slave下配置kubectl资源操作创建对象 API概述类型访问控制认证授权 废弃API说明 资源管理资源管理介绍资源管理方式命令式对象管理命令式对象配置创建yaml文件创建资源查看资源删除资源 声明式对象配置 kebectl在node节点上运行查看每种资源的可配…

Polygon Miden zkRollup中的UTXO+账户混合状态模型

1. 引言 本文重点讨论Polygon Miden所设计的UTXO账户混合状态模型,以实现某些有趣的属性。 Miden的目标是:【即越具有隐私性,其可扩展性越好】 构建可扩展去中心化的rollup采用支持隐私的架构 Miden支持灵活的交易模式: 公开…