极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9452|回复: 0

sd卡放音乐 用库文件 ,不用电脑控制求建议,帮忙想想怎样随机播放

[复制链接]
发表于 2013-10-8 22:41:59 | 显示全部楼层 |阅读模式
这个是代码,谁能一起想想自动循环的语法,(我是用if来选择,也可以用switch,但是如果有几百首个if码子都码死,求简略的方法。。。比方说吧中间的数字用变量来代替,但是我不会==)(原谅我就玩了4天的菜鸟。。)还有很多教程都有具体的电路图,我就不介绍了==。
二号引脚是下一首歌,我还没想到方法让它一首歌放完自动下一首,只能这样==
二号引脚是下一首歌,我还没想到方法让它一首歌放完自动下一首,只能这样==
谢谢各位大神帮忙==
#include <SimpleSDAudio.h>

void DirCallback(char *buf) {
  Serial.println(buf);
}

#define BIGBUFSIZE (2*512)
uint8_t bigbuf[BIGBUFSIZE];

// helper function to determine free ram at runtime
int freeRam () {
  extern int __heap_start, *__brkval;
  int v;
  return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}

void setup()
{
pinMode(2, OUTPUT);
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  
  Serial.print(F("Free Ram: "));
  Serial.println(freeRam());
  
  // Setting the buffer manually for more flexibility
  SdPlay.setWorkBuffer(bigbuf, BIGBUFSIZE);
  
  Serial.print(F("\nInitializing SimpleSDAudio V" SSDA_VERSIONSTRING " ..."));  
  
  // If your SD card CS-Pin is not at Pin 4, enable and adapt the following line:
  //SdPlay.setSDCSPin(10);
  
  // Select between SSDA_MODE_FULLRATE or SSDA_MODE_HALFRATE (62.5kHz or 31.25kHz)
  // and the output modes SSDA_MODE_MONO_BRIDGE, SSDA_MODE_MONO or SSDA_MODE_STEREO
  if (!SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER)) {
    Serial.println(F("initialization failed. Things to check:"));
    Serial.println(F("* is a card is inserted?"));
    Serial.println(F("* Is your wiring correct?"));
    Serial.println(F("* maybe you need to change the chipSelect pin to match your shield or module?"));
    Serial.print(F("Error code: "));
    Serial.println(SdPlay.getLastError());
    while(1);
  } else {
    Serial.println(F("Wiring is correct and a card is present."));
  }
  

}
int a=0;
char * AudioFileName="(7)~1.AFM";
void loop(void) {
  uint8_t count=0, c, flag;
  
  a=a+1;
   if (a==1)
   {
  AudioFileName="(6)~1.AFM";
};
   if (a==2)
   {
  AudioFileName="(7)~1.AFM";
};
  if (a==3)
   {
  AudioFileName="(8)~1.AFM";
};
  if (a==4)
   {
  AudioFileName="(9)~1.AFM";
};
  if (a==5)
   {
  AudioFileName="(10)~1.AFM";
};

  Serial.println(F("Files on card:"));
  SdPlay.dir(&DirCallback);

  Serial.print(F("Looking for file... "));
SdPlay.setFile(AudioFileName);
Serial.print(AudioFileName);
    flag = 1;
  int i=1;
   
  while(flag) {
    SdPlay.worker();
    if (i==1){
               SdPlay.play();
           Serial.println(F("Play."));
           i=2;      
    }
int a =digitalRead(2);
if (a==HIGH)
{
break;
}

  };
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-9 09:00 , Processed in 0.036545 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表