课程目标
相关知识
- **蓝牙:**是一种支持多个设备之间短距离通信(一般10m左右)的无线电技术。
蓝牙的特点:
1、蓝牙技术的适用设备多,无需电缆,通过无线使电脑和电信连网进行通信。
2、蓝牙技术的工作频段全球通用,适用于全球范围内用户无界限使用。
3、蓝牙技术的安全性和抗干扰能力强。
4、传输距离较短。
5、通过跳频扩频技术进行传播
**蓝牙串口模块:**蓝牙串口模块是基于SPP协议(Serial PortProfile),能在蓝牙设备之间创建串口进行数据传输的一种设备,广泛应用在具有蓝牙功能的电子设备上。
蓝牙串口模块通信模型:
电路搭建
所需材料
ArduinoUNO * 1
HC-05蓝牙串口模块 * 1
LED * 1
杜邦线若干
电路连接
程序编写
练习一:手机控制LED亮灭
根据上面的电路接线图,编程实现通过手机发送指令,来控制LED的亮和灭。
图形化方式:
代码方式:
/* 项目名称:手机控制LED
* 项目时间:2022.03.30
* 项目作者:MRX
*/
int LedPin = 7;
void setup()
{
Serial.begin(9600);
pinMode(LedPin,OUTPUT);
}
void loop()
{
while(Serial.available())
{
char Bluetooth=Serial.read();
if(Bluetooth=='a')
{
Serial.println("Turn ON");
digitalWrite(LedPin,HIGH);
}
if(Bluetooth=='b')
{
Serial.println("Turn OFF");
digitalWrite(LedPin,LOW);
}
}
}
手机端设置:
APP初始界面:
设置流程:
连接完成后,在命令行进行对应的指令输入,那么就可以发现LED能够根据预设的指令进行变化了。
练习二:蓝牙小车
实现通过手机蓝牙输入指令来控制小车进行对应的运动控制。
电路连接:
图形化方式:
代码方式:
/* 项目名称:蓝牙控制小车运动
* 项目时间:2022.03.30
* 项目作者:MRX
*/
int IN1 = 2; // IN1 connected to pin 4
int IN2 = 4;
int ENA = 3;
int IN3 = 6; // IN3 connected to pin 6
int IN4 = 7;
int ENB = 5;
int value = 255; // the duty cycle
void Forward() {
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
analogWrite(ENA,value);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
analogWrite(ENB,value);
}
void Back() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA,value);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB,value);
}
void Right() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA,value);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB,0);
}
void Left() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA,0);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB,value);
}
void Stop() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
analogWrite(ENA,0);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
analogWrite(ENB,0);
}
void setup(){
Serial.begin(9600);
for (int i = 4;i <= 10;i++){
pinMode(i, OUTPUT);
}
}
void loop(){
while(Serial.available())
{
char Bluetooth=Serial.read();
if(Bluetooth=='a')
{
Serial.println("Forward");
Forward();
}
if(Bluetooth=='b')
{
Serial.println("Bback");
Back();
}
if(Bluetooth=='c')
{
Serial.println("Left");
Left();
}
if(Bluetooth=='d')
{
Serial.println("Right");
Right();
}
if(Bluetooth=='e')
{
Serial.println("Stop");
Stop();
}
}
}
手机APP设置:
-
led灯
+关注
关注
22文章
1592浏览量
107841 -
串口通信
+关注
关注
34文章
1620浏览量
55426 -
蓝牙模块
+关注
关注
30文章
565浏览量
55691 -
Arduino
+关注
关注
187文章
6464浏览量
186665
发布评论请先 登录
相关推荐
评论