阿花花 发表于 2013-3-1 10:38:14

【求助】arduino怎么同时播放多首MP3

本帖最后由 阿花花 于 2013-3-1 10:44 编辑

请问如果arduino不连电脑怎么用多个喇叭同时播放多首MP3
需要哪些硬件?
谢谢~

邓维安 发表于 2013-3-1 16:44:38

你敢把问题描述清楚点么?

阿花花 发表于 2013-3-1 23:24:28

邓维安 发表于 2013-3-1 16:44 static/image/common/back.gif
你敢把问题描述清楚点么?

就是像电子钢琴一样两个键按下同时发出两个音,不过我要的是同时播两个曲子

邓维安 发表于 2013-3-5 10:05:13

int adc_key_val ={50, 200, 400, 600, 800 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;

void setup()
{
Serial.begin(19200);
pinMode(10, INPUT);//D10
delay(2000);//等待2秒钟播放器初始化完成
Serial.println("\\:v 250");    // 音量设置最大数字 0-255 数字越大音量越大
delay(50);
}

//接收串口命令字符,执行相应操作
void loop()
{
int val,i;
adc_key_in = analogRead(0);    // read the value from the sensor

key = get_key(adc_key_in);       // convert into key press
       
if (key != oldkey)          // if keypress is detected
   {
    delay(50);                // wait for debounce time
    adc_key_in = analogRead(0);    // read the value from the sensor
    key = get_key(adc_key_in);           // convert into key press
    if (key != oldkey)                               
    {                       
      oldkey = key;
      if (key >=0){
      switch(key)
      {
         case 0:
                  Serial.println("\\:p");//暂停播放
                  Serial.println("OK");
                  break;
         case 1:
                  Serial.println("\\:s");//继续播放
                  Serial.println("OK");
                  break;
         case 2:
                  Serial.println("\\:n");// 播放下一首
                  Serial.println("OK");
                  break;
         case 3:
                  Serial.println("\\:u"); // 播放上一首
                  Serial.println("OK");
                  break;      
         case 4://播放名称为yes的音频文件
                  //注意:必须将音量控制放在播放之前
                  Serial.println("\\:v 250");    // 音量设置250 数字 0-255 数字越大音量越大
                  //Serial.println("\\yes");
                  Serial.println("OK");
                  break;   
      }               
      }
    }
}
delay(100);
}

// Convert ADC value to key number
int get_key(unsigned int input)
{
    int k;
   
    for (k = 0; k < NUM_KEYS; k++)
    {
      if (input < adc_key_val)
        {
            return k;
      }
   }
    if (k >= NUM_KEYS)k = -1;// No valid key pressed
    return k;
}

邓维安 发表于 2013-3-5 10:05:55

改一下switch case 估计可以实现

恺之 发表于 2013-3-9 22:55:12

邓维安 发表于 2013-3-5 10:05 static/image/common/back.gif
int adc_key_val ={50, 200, 400, 600, 800 };
int NUM_KEYS = 5;
int adc_key_in;


arduino怎样播放mp3呢?是不是只能通过vs1003?

弘毅 发表于 2013-3-12 20:08:44

恺之 发表于 2013-3-9 22:55 static/image/common/back.gif
arduino怎样播放mp3呢?是不是只能通过vs1003?

把mp3转换成wav以后直接用arduino+SD卡就能播放,不过同一时间只能播放一首~~如果要播放多首的话。。多个控制板吧。。
页: [1]
查看完整版本: 【求助】arduino怎么同时播放多首MP3