当前位置:首页  <  应用教程  <  【创客学堂】基于Arduino和MP3Player的触摸播放器...
【创客学堂】基于Arduino和MP3 Player的触摸播放器
编辑:Peter 2013-08-21 浏览次数:2071

    Arduino自从出现以来可谓是频频出彩,喜爱电子制作的人们纷纷入手Arduino,用它做出了美轮美奂的作品,小编也不甘示弱——咱们做不了创客们的大作品,总可以做一些小的吧,正好今天入手了两个新模块——MP3IIC Touch就做了个好玩的小东西——基于Arduino的触控式MP3

    MP3模块的主要芯片就是WT5001,支持MP3解码,支持WAV格式,能够直接播放Micro SD卡和U盘里的歌曲,双通道LDO,自带实时时钟,配有标准的RS232串口控制。

MP3


    IIC Touch模块是一款电容式触摸模块,核心器件是MPR121,一款电容式传感器控制器,通过IIC模式通信,可以连接12个触摸点。

IIC Touch


    小编结合手中的Arduino UNO控制器做了一个小实验——触摸式MP3,除了上面凉两款模块以外,我们还需要一个Arduino控制器,

 

Arduino UNO控制器


    一个Arduino传感器扩展板

 

Arduino传感器扩展板

    使用了传感器扩展板之后,我们就可以轻松的使用串口IIC接口了。

    首先将MP3模块连接到扩展板的串口通信端口,然后再将Touch模块连接到IIC端口上,下面就让我们开始触控式音乐之旅吧!哦,忘了最重要的东西了——代码,篇幅有限,小编就在文章中公布部分源码,全部代码可以点击这里下载

void  CheckStatus()

{

  if ((status1&0x01)==0x01)

  {

      StateOfTouch1 =1; 

  }

  else

  {

    if (StateOfTouch1 ==1) //如果CH0被触摸,则开始播放音乐

    {

     Serial.println("channel 0 has pressed..");

     Serial.write(0x7E);

     Serial.write(0x02);

     Serial.write(0xA3);

     Serial.write(0x7E);

     StateOfTouch1 =0;

    }

  }

  

  if ((status1&0x02)==0x02)

  {

      StateOfTouch2 =1; 

  }

  else

  {

    if (StateOfTouch2 ==1) //若果CH1被触摸,则停止播放音乐

    {

      Serial.println("channel 1 has pressed..");

      Serial.write(0x7E);

      Serial.write(0x02);

      Serial.write(0xA4);

      Serial.write(0x7E); 

      StateOfTouch2 = 0;

    }

  }

  

  if ((status1&0x04)==0x04)

  {

      StateOfTouch3 =1; 

  }

  else

  {

    if (StateOfTouch3 ==1) //如果CH2被触摸,则播放下一曲

    {

       Serial.println("channel 2 has pressed..");

       Serial.write(0x7E);

       Serial.write(0x02);

       Serial.write(0xA5);

       Serial.write(0x7E); 

       StateOfTouch3 = 0;

    }

  }

  

  if ((status1&0x08)==0x08)

  {

      StateOfTouch4 =1; 

  }

  else

  {

  if (StateOfTouch4 ==1) //如果CH4被触摸,则进入循环播放模式

    {

     Serial.println("channel 3 has pressed..");

     Serial.write(0x7E);

     Serial.write(0x03);

     Serial.write(0xA9);

     Serial.write(0x02);

     Serial.write(0x7E);

     StateOfTouch4 =0;

    }

  }

}

    上面的代码只设置了四个简单的功能,我们可以使用此模式进行音量的加减,以及其他播放模式的设置等功能。

    这款MP3播放器还可以驱动自带电源的小型音箱,我们就可以把上面的小作品进行扩展了,利用Arduino蓝牙模块、无线数传模块等将有线控制变为无线控制,再把播放器隐藏起来,当有客人来的时候,我们只需要在特定的位置触摸一下,美妙的音乐就响起了,小编一定要抓紧时间做一个!

 

资料链接:

ArduinoUNO

http://www.alsrobot.cn/goods-141.html

Arduino传感器扩展板

http://www.alsrobot.cn/goods-147.html

蓝牙模块

http://www.alsrobot.cn/goods-414.html

APC220

http://www.alsrobot.cn/goods-55.html

RB230

http://www.alsrobot.cn/goods-53.html

Sparkfun中国区代理

http://alsrobot.cn/article-103.html