SD卡声音播放代码和舵机代码不能写在一块运行?
我最近想弄一个作品,关于控制舵机转动并伴随有音乐同时产生。单独把控制舵机的代码或者控制SD卡声音播放代码写进板卡里都能独立正常的工作,但是一把两个代码写在一块后烧进板卡,声音要嘛不放,要嘛都是音调很高的噪音。
关于控制SD卡声音播放代码如下:
#include <SimpleSDAudio.h>
void setup()
{
if (!SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO))
{
while(1);
}
if(!SdPlay.setFile(“?.AFM"))【问号为SD卡里某一音频名称】
{
while(1);
}
SdPlay.play();
while(!SdPlay.isStopped()) {
SdPlay.worker();
}
}
void loop(void) {
}
我只要在上述代码里加上servo.attach(pin)【pin为9或者10】这么一条代码。
就出现声音不能正常播放的情况,但是控制舵机似乎又少不了上面那条代码。
我分析是servo.attach(pin)和声音代码发生冲突,servo.attach(pin)占用了什么东西。
所以又试着在servo.attach(pin)后写进servo.detach()
结果是在噪音里听到隐约的音乐,而且音乐的节奏变慢下来
如果把servo.attach(pin)写在声音代码的末尾,声音就能正常播放。
但是我需要把声音代码写在void loop()里,进行循环控制,这时按上述那样做的话,声音就只会正常一次,
第二次就是音调很高的噪音了。
。
具体的控制SD卡声音代码在http://www.geek-workshop.com/thread-2611-1-1.html里有。
我还想通过代码的改写将两个代码分开,但是毫无头绪。
所以恳请大神不吝赐教。在下感激不尽。
问题是SD卡也要用到10(UNO这板是10)、11、12、13引脚,引脚使用冲突 舵机数量少的话,可以用3、5、6引脚接舵机(这三个脚也可以用舵机库的)
页:
[1]