關於Arduino連接藍牙模塊HC-05與Andirod手機之間的數據傳輸 2022-02-20


各位小伙伴好:

最近在學習使用手機發送指令,Arduino通過藍牙模塊接收數據的,對於玩Arduino的小伙伴來說,也許起步都是從避障小車,循跡小車等項目入手,這些項目基本是通過傳感器即可實現。但是實現人機交互必然是進階的必要路徑,接下來給大家介紹下這幾天的心得吧,希望對大家有所幫助;

實驗環境:
(1)Windows10;Windows11在實際操作過程中發現對於USB-TTL的支持有點問題,所以自己的電腦從windows11降級到了Win10;
(2)Arduino Uno開發板;
(3)HC-05藍牙模塊;
(4)Arduino IDE;
(5)App Inventor 2離線版;
(6)杜邦線數條;

本想着是做通過手機控制小車的前進,后退,左轉,右轉,停止等動作的,首先摸清實現方式,只要原理通了,其他的問題不大;所有目前是通過藍牙串口通訊的方式向Arduino傳輸數據,Arduino接收到數據后判斷不同的數值來決定執行那些動作,基本想法是這樣,我們接着來看吧;

`#include <SoftwareSerial.h>

// Pin10 TXD
// Pin11 RXD
SoftwareSerial BT(10, 11);
int val;

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
Serial.println("BT is ready!");
BT.begin(9600);
}

void loop() {
if (BT.available()) {
val = BT.read();
Serial.println(val);
if (val==1) {
digitalWrite(LED_BUILTIN, HIGH);
}
else {
digitalWrite(LED_BUILTIN, LOW);
}
BT.write(val);
}
}`

以上這段是Arduino的代碼,主要是定義了TXD和RXD的接口,藍牙以及串口的通訊碼率;此處為9600,當我們從藍牙的TXD接收到的值為1時,點亮Arduino的板載LED,否則不關閉LED,同時把收到的值傳回發送端(RXD),方便調試;

Arduino(左)與HC-05(右)的對接:
(1)5v-----Vcc
(2)GND----GND
(3)TXD----RXD(交叉對接)
(4)RXD----TXD(交叉對接)
(5)EN與STATE不接線(EN:使能接口,主要是用來HC-05模塊進入AT模式,即設置模式,使用USB轉TTL的時候需要用需要按住EN的按鈕接入才行;STATE這個是藍牙的狀態顯示,HC-05板子上已經有LED顯示狀態了);

具體接線大家看上圖;

PS:
(1)不建議大家使用藍牙調試助手,藍牙調試寶等亂七八糟的調試軟件,我踩了很大的坑,花了不少的時間在排錯上,這種類似的軟件很不穩定,經常異常退出;
(2)如果只是調試的話采用PC的藍牙配對HC-05,然后用串口工具比較靠譜,調試沒問題了后續可以用MIT AI2來自己做個藍牙客戶端;

目前基本功能都是實現了,今天喝了點酒,有空再更新一下吧,需要我分享經驗的小伙伴可以聯系我,QQ:107726175;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM