赞
踩
记录一下吧,简单地实现了arduino 连接蓝牙,发送指令控制音频播放。
JQ8400 使用的是一线串口通讯,电路图如下:
引脚功能如下:
- #include <SoftwareSerial.h>
- #include <Servo.h>
- //使用软件串口,能讲数字口模拟成串口
- SoftwareSerial BT(6, 7); //新建对象,接收脚为6,发送脚为7
- char val ; //存储接收的变量
-
- Servo myservo1;//定义舵机1变量名
- Servo myservo2;//定义舵机2变量名
-
- void setup() {
- Serial.begin(9600); //与电脑的串口连接
- Serial.println("BT is ready!");
- BT.begin(9600); //设置波特率
- pinMode(3,OUTPUT);
- myservo1.attach(9);//定义舵机接口(9、10 都可以,缺点只能控制2 个)
- myservo2.attach(10);//定义舵机接口(9、10 都可以,缺点只能控制2 个)
- }
-
- void loop() {
- // 如果串口接收到数据,就输出到蓝牙串口
- if (Serial.available()) {
- val = Serial.read();
- BT.print(val);
- }
-
- //如果接收到蓝牙模块的数据,输出到屏幕
- if (BT.available()) {
- val = BT.read();
- Serial.println(val);
- if(val == '1'){
- Serial.println("da a1!!");
- myservo1.write(0);//设置舵机旋转的角度
- //发送0x01
- SendData(0x0a);
- SendData(0x01);
- SendData(0x0b);
- val = "";
- delay(5000);
- myservo1.write(90);//设置舵机旋转的角度
- }
- if(val == '2'){
- myservo2.write(180);//设置舵机旋转的角度
- SendData(0x0a);
- SendData(0x02);
- SendData(0x0b);
- val = "";
- delay(5000);
- myservo2.write(90);//设置舵机旋转的角度
- }
- if(val == '3'){
- SendData(0x0a);
- SendData(0x03);
- SendData(0x0b);
- val = "";
- }
- if(val == '4'){
- SendData(0x0a);
- SendData(0x04);
- SendData(0x0b);
- val = "";
- }
- if(val == '5'){
- myservo1.write(0);//设置舵机旋转的角度
- SendData(0x0a);
- SendData(0x05);
- SendData(0x0b);
- val = "";
- delay(4000);
- myservo1.write(90);//设置舵机旋转的角度
- }
- if(val == '6'){
- myservo2.write(180);//设置舵机旋转的角度
- SendData(0x0a);
- SendData(0x06);
- SendData(0x0b);
- val = "";
- delay(4000);
- myservo2.write(90);//设置舵机旋转的角度
- }
- }
- }
-
- //语音模块函数
- 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然后判断播放不同音乐。(音乐要提前存进JQ8400,命名按手册规范)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。