cai4728 发表于 2014-3-12 17:38:08

求助,DFRobot Arduino TTL串口SD卡mp3播放器串口5无法返回低电平

本帖最后由 cai4728 于 2014-3-12 17:40 编辑

有人用过这个模块吗?这个mp3播放模块介绍说音频文件播放完毕后会输出一个低电平。但我试了一下没有成功。我把串口的5号接到Arduino的数字口8上,但是mp3播放完毕数字口检测不到低电平。Serial.print(digitalRead(playing))在monitor上总是返回1;,如果有输出低电平的话应该会返回0吧?还是说我的线路连的不对吗?

*我在做一个通过声音传感器触发播放mp3的玩具,现在的问题就是如果一个mp3还没播放完毕,再次检测到声音就会播放下一个mp3了。我想让mp3播放完毕,再放下一个mp3。、

ps:wiki上面的代码有问题,必须把(digitalRead(button)==LOW)改成if(digitalRead(button)==HIGH)才能正常工作,不过就算改了也还是有点问题,按钮按下去的时候会重复触发这个if判断句,直到放开按钮才会执行。
还有就是说明上面写着“语音文件名称\r\n 播放相应名称的歌曲,如果找到歌曲播放正确将返回 Play ok\r\n“   但是我就算在代码中写上了\r\n,也不会返回我Play ok。我的意思是我得不到任何返回值


产品wiki: https://wiki.dfrobot.com.cn/index.php/(SKU:TOY0008)DFRduino_Player_V2.0(.NET_Gadgeteer_Compatible)MP3%E6%92%AD%E6%94%BE%E6%A8%A1%E5%9D%97

bobo 发表于 2014-3-12 18:22:37

OUT脉冲是表示歌曲播放完毕,输出脉冲非常短 只有1ms 你通过轮询的形式来读取这个脉冲是不容易读取到的。

另外你写的下一曲命令是错误的

//按按键播放下一首
void loop()
{
   
   if(digitalRead(button)==HIGH)   //检测是否有按钮按下,注意看看你手上的DF单按钮是不是按下是高电平,新版本是按下高电平。
      {
      delay(50);//延迟去抖动
      if(digitalRead(button)==HIGH)
            {      Serial.println("\\:n");// 播放下一首
                  Serial.println("OK");
                   while( digitalRead(PlayEnd)==HIGH) ;// OUT管脚如果是高一直死循环,等待歌曲完成推出,再次检测按钮按下
             }               
      }
    }



cai4728 发表于 2014-3-12 18:39:17

bobo 发表于 2014-3-12 18:22
OUT脉冲是表示歌曲播放完毕,输出脉冲非常短 只有1ms 你通过轮询的形式来读取这个脉冲是不容易读取到的。

...

成功了,谢谢大神!原来脉冲只有1ms,我之前一直都看成是1秒了。
页: [1]
查看完整版本: 求助,DFRobot Arduino TTL串口SD卡mp3播放器串口5无法返回低电平