6596| 2
|
[已解决] 求助,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 |
连线
代码
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管脚如果是高一直死循环,等待歌曲完成推出,再次检测按钮按下 } } } |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed