課程目標
相關知識
- **藍牙:**是一種支持多個設備之間短距離通信(一般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瀏覽量
107950 -
串口通信
+關注
關注
34文章
1624瀏覽量
55508 -
藍牙模塊
+關注
關注
30文章
573瀏覽量
55725 -
Arduino
+關注
關注
188文章
6468瀏覽量
186954
發布評論請先 登錄
相關推薦
評論