当前位置:   article > 正文

arduino 蓝牙控制 JQ8400播放音频_jq8400fl-10p电路图

jq8400fl-10p电路图

记录一下吧,简单地实现了arduino 连接蓝牙,发送指令控制音频播放。

JQ8400 使用的是一线串口通讯,电路图如下:

 引脚功能如下:

  1. #include <SoftwareSerial.h>
  2. #include <Servo.h>
  3. //使用软件串口,能讲数字口模拟成串口
  4. SoftwareSerial BT(6, 7); //新建对象,接收脚为6,发送脚为7
  5. char val ; //存储接收的变量
  6. Servo myservo1;//定义舵机1变量名
  7. Servo myservo2;//定义舵机2变量名
  8. void setup() {
  9. Serial.begin(9600); //与电脑的串口连接
  10. Serial.println("BT is ready!");
  11. BT.begin(9600); //设置波特率
  12. pinMode(3,OUTPUT);
  13. myservo1.attach(9);//定义舵机接口(910 都可以,缺点只能控制2 个)
  14. myservo2.attach(10);//定义舵机接口(910 都可以,缺点只能控制2 个)
  15. }
  16. void loop() {
  17. // 如果串口接收到数据,就输出到蓝牙串口
  18. if (Serial.available()) {
  19. val = Serial.read();
  20. BT.print(val);
  21. }
  22. //如果接收到蓝牙模块的数据,输出到屏幕
  23. if (BT.available()) {
  24. val = BT.read();
  25. Serial.println(val);
  26. if(val == '1'){
  27. Serial.println("da a1!!");
  28. myservo1.write(0);//设置舵机旋转的角度
  29. //发送0x01
  30. SendData(0x0a);
  31. SendData(0x01);
  32. SendData(0x0b);
  33. val = "";
  34. delay(5000);
  35. myservo1.write(90);//设置舵机旋转的角度
  36. }
  37. if(val == '2'){
  38. myservo2.write(180);//设置舵机旋转的角度
  39. SendData(0x0a);
  40. SendData(0x02);
  41. SendData(0x0b);
  42. val = "";
  43. delay(5000);
  44. myservo2.write(90);//设置舵机旋转的角度
  45. }
  46. if(val == '3'){
  47. SendData(0x0a);
  48. SendData(0x03);
  49. SendData(0x0b);
  50. val = "";
  51. }
  52. if(val == '4'){
  53. SendData(0x0a);
  54. SendData(0x04);
  55. SendData(0x0b);
  56. val = "";
  57. }
  58. if(val == '5'){
  59. myservo1.write(0);//设置舵机旋转的角度
  60. SendData(0x0a);
  61. SendData(0x05);
  62. SendData(0x0b);
  63. val = "";
  64. delay(4000);
  65. myservo1.write(90);//设置舵机旋转的角度
  66. }
  67. if(val == '6'){
  68. myservo2.write(180);//设置舵机旋转的角度
  69. SendData(0x0a);
  70. SendData(0x06);
  71. SendData(0x0b);
  72. val = "";
  73. delay(4000);
  74. myservo2.write(90);//设置舵机旋转的角度
  75. }
  76. }
  77. }
  78. //语音模块函数
  79. void SendData (char addr )//发送函数。
  80. {
  81. digitalWrite(3,HIGH); /*开始拉高*/
  82. delayMicroseconds ( 1000 );
  83. digitalWrite(3,LOW); /*开始引导码*/
  84. delayMicroseconds ( 3200 );/*此处延时最少要大于2ms*/
  85. for (int i = 0; i < 8; i++ ) /*总共8位数据 */
  86. {
  87. digitalWrite(3,HIGH);
  88. if ( addr & 0x01 ) /*3:1表示数据位1,每个位用两个脉冲表示 */
  89. {
  90. delayMicroseconds ( 600 );
  91. digitalWrite(3,LOW);
  92. delayMicroseconds ( 200 );
  93. }
  94. else /*13表示数据位0 ,每个位用两个脉冲表示 */
  95. {
  96. delayMicroseconds ( 200 );
  97. digitalWrite(3,LOW);
  98. delayMicroseconds ( 600 );
  99. }
  100. addr >>= 1;
  101. }
  102. digitalWrite(3,HIGH);
  103. }

利用蓝牙发送1、2、3、4、5、6然后判断播放不同音乐。(音乐要提前存进JQ8400,命名按手册规范)

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

闽ICP备14008679号