当前位置:   article > 正文

arduino控制JQ8900-16P语音模块_语音模块jq8999

语音模块jq8999

首先要感谢stm32通过 一线串口通信控制JQ8900-16P语音模块的作者

我就是根据这位博主的代码改写的,但是碰到了意想不到的问题。其实代码是写对了,语音模块是单独供电,这个供电的地要和arduino的地共用。(我第一天测试的时候其实也注意到了这个需要共地,但是反复测试不行,因为没有保存代码,今天只能重新一遍,居然就好了。)另外接上一个3W的喇叭,直接用arduino的板子给语音模块供电也是可以带动的。不需要额外电源。

void setup()
{
    pinMode(3,OUTPUT);
}
 
void loop()
{
    
    SendData(0x0a);    //清空数字
    SendData(0x01);    //曲目号
    SendData(0x00);
    SendData(0x0b);    //选曲播放
    delay(2000);    //延时
    
    //发送0x01
    SendData(0x0a);
    SendData(0x01);
    SendData(0x0b);
    delay(2000);
    
    //发送0x07
    SendData(0x0a);
    SendData(0x07);
    SendData(0x0b);
    delay(2000);
    
    //发送0x03
    SendData(0x0a);
    SendData(0x03);
    SendData(0x0b);
    delay(2000);
 
}
  
       
    


void SendData (char addr )//发送函数。
{
    
 
     
    digitalWrite(3,HIGH); /*开始拉高*/
    delayMicroseconds ( 1000 );
    digitalWrite(3,LOW); /*开始引导码*/
    delayMicroseconds ( 3200 );/*此处延时最少要大于2ms*/
    for (int i = 0; i < 8; i++ ) /*总共8位数据  */
    {
        digitalWrite(3,HIGH);
        if ( addr & 0x01 ) /*3:1表示数据位1,每个位用两个脉冲表示  */
        {
            delayMicroseconds ( 600 );
            digitalWrite(3,LOW);
            delayMicroseconds ( 200 );
        }
        else              /*1:3表示数据位0 ,每个位用两个脉冲表示  */
        {
            delayMicroseconds ( 200 );
            digitalWrite(3,LOW);
            delayMicroseconds ( 600 );
        }
        addr >>= 1;
    }
    digitalWrite(3,HIGH);
    
    
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68

啧啧啧,搞了两天。另外我发现音量控制有点问题设置成20和80的音量值,感觉都是一样的。都比较小,怎么回复原来的音量呢?给语音板断电就恢复成默认大音量了。

在淘宝店可以搜到这个模块产品和说明书。音量的设置方法有详细的说明。
在这里插入图片描述
另外原作者提到在网上找了很多延时函数都达不到要求,但是在arduino里面直接用自带的微秒延时就行了。说明还是很准的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/288284
推荐阅读
相关标签
  

闽ICP备14008679号