我正在尝试从microSD卡读卡器播放wav文件。我尝试使用SimpleSDAudio和TMRpcm库,但播放速度太快了。持续3分钟的歌曲在1秒内播放。
我正在使用内置microSD读卡器的Arduino Uno和Ethernet Shield。扬声器连接到引脚9。
#include <SimpleSDAudio.h>
void setup()
{
// SdPlay.setSDCSPin(10); // Enable if your SD card CS-Pin is not at Pin 4...
SdPlay.init(SSDA_MODE_HALFRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER);
SdPlay.setFile("track.wav");
SdPlay.play();
}
void loop(void) {
}
答案 0 :(得分:2)
问题是您使用的库无法播放8k样本文件 - 请参阅http://www.hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio。最慢的速率是32k(取决于你的主板上的时钟速率) - 所以你的速度提高了4倍。
您的缓冲区也可能不够大。它是播放整个文件,还是在结束前停止?您可能想要使用
getLastError();
找出错误是否导致播放过早停止(文件碎片?你需要一张格式干净的SD卡,不得删除任何文件,否则会混淆和损坏)。有关详细信息,请参阅上面的链接。