Arduino wav播放播放速度太快

时间:2014-01-28 01:27:11

标签: arduino wav

我正在尝试从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) {
}

1 个答案:

答案 0 :(得分:2)

问题是您使用的库无法播放8k样本文件 - 请参阅http://www.hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio。最慢的速率是32k(取决于你的主板上的时钟速率) - 所以你的速度提高了4倍。

您的缓冲区也可能不够大。它是播放整个文件,还是在结束前停止?您可能想要使用

getLastError();

找出错误是否导致播放过早停止(文件碎片?你需要一张格式干净的SD卡,不得删除任何文件,否则会混淆和损坏)。有关详细信息,请参阅上面的链接。