原创 用Arduino Uno和MicroSD模块制作一个音乐播放器

2022-3-25 11:22 2943 11 11 分类: MCU/ 嵌入式 文集: 方案
厌倦了呆板的音响设备,那就动手制作一个音乐播放器吧。本项目可播放WAV格式音乐,用户只需简单的接线和焊接技能即可完成制作。

项目使用Arduino IDE环境,所需硬件材料很简单:
Arduino UNO                    ×1    
Catalex MicroSD适配模组        ×1    
Speaker 8Ω 1/2W            ×1    
Resistor 330欧姆                ×1    
Transistor 2n3904(2n2222)        ×1    
面包板                          ×1    
 
首先,需要将SD卡格式化成FAT16 or FAT32格式,因为有些芯片不支持NTFS格式。拷入音乐之前,要先转化成.wav格式的文件,转换方法可参考
https://audio.online-convert.com/convert-to-wav,这个链接可将MP3文件转化成如下规格的音乐:
分辨率: 8Bit
取样率: 32000Hz
音频通道: 立体声

接下来,将转化后的音乐文件拷入SD卡,并插入microSD模组。

第三步,按照电路图将零件连接到面包板上。如果打算长期使用这个作品,可用烙铁将它们焊接起来。



第四,安装Arduino IDE到电脑,可参考:
Windows ->https://www.arduino.cc/en/Guide/Windows
Linux -> https://www.arduino.cc/en/Guide/Windows
Mac -> https://www.arduino.cc/en/Guide/Windows

接着,编写代码,也可以从https://github.com/isramos/mico-shield/tree/master/libraries/SimpleSDAudio直接下载。



下载完成后,将SimpleSDAudio库安装到:Arduino IDE —> Sketch —> Include Library —> Add.ZIP Library …



浏览已下载的 .zip 文件。下面是一份现成的代码,选择对应的板子(Tools->Board->Arduino Uno/Genuino)和COM端口,可将代码直接上传到Arduino Uno板。



大功告成!如果觉得三块板裸露在外不安全,可将它们适当固定起来,置于不用的CD盒等闲置盒子里。


附:SimpleSDAudio库

/*
 *  First we need to convert mp3 file to wav file with below setting
 *  bit resolution : 8 Bit
 *  sampling rate  : 32000 Hz
 *  audio channel  : stereo
 *  
 *  to convert mp3 visit link: https://audio.online-convert.com/convert-to-wav
 */
#include

void setup() {
 
  SdPlay.setSDCSPin(4); // sd card cs pin
  if (!SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER)) // setting mode
  {
    while(1);
  }

}

int count = 1;
void loop(void)
{
 
  switch (count) {
      case 1:
        if(!SdPlay.setFile("music1.wav")) // music name file
          {
            while(1);          
          }
          count = 2;
        break;
      case 2:
        if(!SdPlay.setFile("music2.wav")) // music name file
          {
            while(1);
          }
          count = 3;
        break;
      case 3:
        if(!SdPlay.setFile("music3.wav")) // music name file
          {
            while(1);
          }
          count = 1;
        break;
    }
    
  SdPlay.play(); // play music
 
  while(!SdPlay.isStopped())
    {
      ;
    }

}






 

作者: 硬之城Allchips, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3975615.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条