1.Sơ
đồ nguyên lý
Tôi sử dụng KIT Arduino Uno và nối chân như sơ đồ hình
vẽ. Để thuận tiện tôi sử dụng luôn led trên mạch là Led ở trên Digital 13. Sở
dĩ phải phải sử dụng hai điện trở trên hình vẽ là do Arduino hoạt động ở mức
logic 5V còn HC-05 hoạt động ở mức logic 3.3V. Nên sử dụng hai điện trở để phân
áp nhằm chuyển đổi mức logic 5V sang 3.3V (các bạn có thể nối trực tiếp của
không sao, nhưng để module hoạt động ổn định và lâu dài thì nên có phương pháp
chuyển đổi mức logic)
2.
Lập trình
#define KEY 7
#define LED 13
bool ok;
String bf="";
void setup()
{
// Open serial
communications and wait for port to open:
pinMode(KEY,OUTPUT);
digitalWrite(KEY,LOW);
pinMode(LED,OUTPUT);
digitalWrite(LED,HIGH);
delay(3000);
Serial.begin(9600);
while (!Serial)
{
}
// set the data rate for
the SoftwareSerial port
ok=configure_HC05();
}
void loop() // run over and over
{
if (ok)
{
if
(Serial.available()>0)
{
while
(Serial.available())
{
char
c=(char)(Serial.read());
bf=bf+c;
delay(10);
}
Serial.println(bf);
if
(Compare("LEDON",bf))
digitalWrite(LED,HIGH);
if
(Compare("LEDOFF",bf))
digitalWrite(LED,LOW);
bf="";
}
}
}
bool Compare (String x,String a)
{
int len_x=x.length();
int len_a=a.length();
int i,j;
for
(j=0;j<=len_a-len_x;j++)
{
for
(i=0;i<len_x;i++)
{
if (x[i]!=a[i+j])
break;
}
if (i==len_x) return
true;
}
return false;
}
bool configure_HC05()
{
digitalWrite(KEY,HIGH);
Serial.println("AT");
delay(2000);
if
(!Serial.find("OK"))
return false;
Serial.println("AT+RMAAD");
delay(2000);
if
(!Serial.find("OK"))
return false;
Serial.println("AT+PSWD=1234");
delay(2000);
if
(!Serial.find("OK"))
return false;
Serial.println("AT+ROLE=0");
delay(2000);
if
(!Serial.find("OK"))
return false;
digitalWrite(KEY,LOW);
Serial.println("AT+RESET");
delay(2000);
if
(!Serial.find("OK"))
return false;
delay(5000);
Serial.println("Bluetooth Ready!");
return true;
}
2. Mô
tả Code
Trong code đầu tiên tôi sẽ chỉnh chân KEY lên mức
logic cao sau đó sẽ tiến hành cấu hình nó như một SLAVE với tập lệnh sau:
· AT+RMAAD
· AT+PSWD=1234
· AT+ROLE=0
Sau khi cấu hình sau ta
đưa chân KEY lên mức logic cao và reset lại module với lệnh
AT+RESET
Lúc này HC-05 của bạn đã
chạy ở chế độ SLAVE và bạn đã hoàn tất bước cấu hình.
Sau đó module sẽ đợi lệnh
bật tắt Led từ máy tính.
Sau khi cấu hình sau ta
đưa chân KEY lên mức logic cao và reset lại module với lệnh
AT+RESET
Lúc này HC-05 của bạn đã
chạy ở chế độ SLAVE và bạn đã hoàn tất bước cấu hình.
Sau đó module sẽ đợi lệnh
bật tắt Led từ máy tính.
3.Thiết
lập kết nối giữa PC và HC-05
Sau khi cấu hình sau ta
đưa chân KEY lên mức logic cao và reset lại module với lệnh
AT+RESET
Lúc này HC-05 của bạn đã
chạy ở chế độ SLAVE và bạn đã hoàn tất bước cấu hình.
Sau đó module sẽ đợi lệnh
bật tắt Led từ máy tính.
Thiết
lập kết nối giữa PC và HC-05
· Bước 1:Sau
khi nạp code vào vi điều khiển bạn hãy tiến hành kết nối HC-05 với Bluetooth
trên máy tính
Sau khi PC và HC-05 đã được ghép nối ta sẽ thấy trong
mục “ Device Manager” hiện thêm 2 cổng COM
· Bước 2:Ta
vào mục Bluetooth Setting để xem cổng nào là cổng “OutGoing” ta sẽ dùng cổng này
để điều khiển đèn Led (trong trường hợp hình bên dưới là cổng COM 9)
2 nhận xét:
Chào anh, em thấy theo tài liệu thì tất cả các mã lệnh AT đều kết thúc bằng \r\n. tuy nhiên theo code của anh thì không có, không biết a có dùng gì để thay thế không ạ.
Ah ơi cho e hoi minh có thể thay thế điện thoại bằng 1 module hc 05 nữa dc hok ạ
Đăng nhận xét