Arduino通过无线蓝牙控制教程说明

 

 

Arduino通过无线蓝牙控制教程说明

Arduino通过无线蓝牙控制教程说明

 

Arduino通过无线蓝牙控制教程说明

测试程序1:使用Arduino通过无线蓝牙控制Arduino引脚11的LED点亮/熄灭

/*
HC-06-Serial-LED-demo
by 太极创客(2017-07-08)
www.taici-maker.com
此程序旨在演示如何利用HC-06蓝牙模块通过手机或平板电脑的
蓝牙功能来打开和关闭arduino开发板引脚11上连接的LED。
 
---- 电路连接 ---- 
HC-06     Arduino Uno R3 引脚
TX                0 (RX)  
RX                1 (TX)
VCC              +5v
GND              GND
 
注意:
1. 须使用分压电路,确保HC-06 RX信号电压为3.3伏特。
2. 须先将此程序上传至ARDUINO后,再将HC-06连接在ARDUINO开发板的串口引脚上。
   否则程序将无法正常上传。
 
*/
char serialData;
 
void setup() {
  Serial.begin(9600);
  pinMode(11, OUTPUT); //11引脚连接演示用LED
 
}
 
void loop(){
  if( Serial.available()>0 ){ 
    
    serialData =  Serial.read();   
    
    if (serialData == '1' ) {  //接收到点亮LED指令
      Serial.print("Got command: ");  Serial.println(serialData); 
      Serial.println("LED-ON");
      
      digitalWrite(11, HIGH);  //点亮LED指令
    } else {    //接收到熄灭LED指令
      Serial.print("Got command: ");  
      Serial.println(serialData); 
      Serial.println("LED-OFF");
 
      digitalWrite(11, LOW);      //熄灭LED指令  
    }      
  }
}

测试程序2:使用Arduino通过无线蓝牙控制调节Arduino引脚11的LED明暗

/*
HC-06-Serial-LED-Fade
by 太极创客(2017-07-08)
www.taici-maker.com
此程序旨在演示如何利用HC-06蓝牙模块通过手机或平板电脑的
蓝牙功能来设置arduino开发板上11引脚上连接LED的亮度。
 
如需获得更多关于本程序的使用说明,请参见太极创客制作的《零基础入门学用Arduino》教程。
 
---- 电路连接 ---- 
HC-06     Arduino Uno R3 引脚
TX                0 (RX)  
RX                1 (TX)
VCC              +5v
GND              GND
 
LED       Arduino Uno R3 引脚
 +                11 (RX) 
 -                GND (通过220欧姆限流电阻)
 
注意:
1. 须使用分压电路,确保HC-06 RX信号电压为3.3伏特。
2. 须先将此程序上传至ARDUINO后,再将HC-06连接在ARDUINO开发板的串口引脚上。
   否则程序将无法正常上传。
 
*/
int brightness;  //LED亮度变量
int serialData;  //串口数据变量
 
void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(11, OUTPUT);
}
 
void loop(){
  if( Serial.available()>0 ){             //如果串口缓存有数据
    serialData =  Serial.parseInt();      //将串口缓存数值存储到serialData变量
    Serial.print("serialData = "); Serial.println(serialData);  
    if (serialData >=0 && serialData <= 255) {  
      if (serialData >= brightness){       //逐渐调节LED亮度
        for (brightness; brightness <= serialData; brightness++){
          analogWrite(11, brightness); 
          Serial.print("brightness = "); Serial.println(brightness);  
          delay(5);
        }      
      } else {
        for (brightness; brightness >= serialData; brightness--){
          analogWrite(11, brightness); 
          Serial.print("brightness = "); Serial.println(brightness);          
          delay(5);          
        }        
      }       
    }     
  }   
}

Arduino蓝牙模块HC06-2

 

/*
HC-06蓝牙模块设置以及功能测试
by 太极创客(2017-07-08)
www.taici-maker.com
此程序旨在演示如何通过HC-06模块使用蓝牙通讯向Arduino数字IO引脚
收发串口数据,以及如何设置HC-06蓝牙模块。
 
如需获得更多关于本程序的使用说明,请参见太极创客制作的《零基础入门学用Arduino》教程。
 
---- 电路连接 ---- 
HC-06     Arduino Uno R3 引脚
TX                2  
RX                3
VCC              +5v
GND              GND
注意:须使用分压电路,确保HC-06 RX信号电压为3.3伏特。
 
//  
 
---- AT指令 ---- 
 
指令               答复                        说明
AT                 OK                          通讯测试
AT+VERSION         OKlinvorV1.8                固件版本
AT+NAMEmyBTmodule  OKsetname                   设置设备名 “myBTmodule”
AT+PIN6789         OKsetPIN                    设置设备 PIN 6789
AT+BAUD1           OK1200                      设置波特率 1200
AT+BAUD2           OK2400                      设置波特率 2400
AT+BAUD3           OK4800                      设置波特率 4800
AT+BAUD4           OK9600                      设置波特率 9600
AT+BAUD5           OK19200                     设置波特率 19200
AT+BAUD6           OK38400                     设置波特率 38400
AT+BAUD7           OK57600                     设置波特率 57600
AT+BAUD8           OK115200                    设置波特率 115200
AT+BAUD9           OK230400                    设置波特率 230400
AT+BAUDA           OK460800                    设置波特率 460800
AT+BAUDB           OK921600                    设置波特率 921600
AT+BAUDC           OK1382400                   设置波特率 1382400
 
*/
 
#include <SoftwareSerial.h>
SoftwareSerial BTserial(2, 3); // 建立SoftwareSerial对象,RX引脚2, TX引脚3
 
void setup() {
  Serial.begin(9600);
  BTserial.begin(9600); // HC-06 默认波特率 9600
 
  Serial.print("HC-06 DEMO/TEST  ");
  
  BTserial.print("AT");   //可在此处输入设置HC-06蓝牙模块的AT指令。
                          //此AT指令须在HC-06未连接蓝牙状态输入。
 
  pinMode(11, OUTPUT);                        
 
}
 
void loop(){
 
    // 通过串口监视器显示HC-06发送的数据
    if( BTserial.available()>0 ){            //如果软件串口有HC-06发来的数据
      char BTserialData =  BTserial.read();  //将软件串口中的数据赋值给变量BTserialData
      Serial.print( BTserialData );         //通过硬件串口监视器显示HC-06发来的数据
      if (BTserialData == '1') {             //判断HC-06发来的数据是否是字符1
        digitalWrite(11, HIGH);              //如果是字符1,则点亮LED
      } else if (BTserialData == '0') {      //如果不是字符0
        digitalWrite(11, LOW);               //则熄灭LED
      }
    }
 
    // 将用户通过串口监视器输入的数据发送给HC-06
    if (Serial.available()>0) {            //如果硬件串口缓存中有等待传输的数据
      char serialData =  Serial.read();    //将硬件串口中的数据赋值给变量serialData
      BTserial.print( serialData );         //将硬件串口中的数据发送给HC-06
    }
 
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论