Chào mọi người,
Mình đang cố kết nối 1 Arduino Uno (dùng ATMEGA328P-PU) với 1 Bluetooth Module HC-05. Arduino sẽ đọc giá trị từ 1 cảm biến nhiệt độ (LM35) trên chân Analog pin 0 rồi truyền sang HC-05 để phát. Nhờ mọi người góp ý qua xem code của mình có vấn đề gì ko vì ko hiểu sao ko báo lỗi + máy tính bảng có thể pair với HC-05 nhưng app viết trên máy tính bảng ko thể nhận đc dữ liệu từ HC-05 (trong khi test app này với app BlueChat thì nhận dữ liệu từ BlueChat bình thường). Mình thử 2 kiểu như sau:
- Một là mặc định nối HC-05 với chân Tx, Rx (Digital 1, Digital 0):
int tempPin=0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
float reading = analogRead(tempPin); // đọc dữ liệu từ chân Analog 0
int tempC = reading*5.0/(1024.0*0.01); // chuyển dữ liệu đọc đc sang nhiệt độ Celcius
Serial.print(tempC);
delay(3000);
}
Trong cách 1 này thì dù mình thay Serial.write vào thì cũng ko có tác dụng gì, phần mềm vẫn ko thể nhận được dữ liệu.
- Hai là mình dùng SoftwareSerial.h:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // chân Rx là 10, Tx là 11 - cả 2 là chân Digital
int tempPin=0;
void setup()
{
mySerial.begin(9600);
}
void loop()
{
float reading = analogRead(tempPin);
int tempC = reading*5.0/(1024.0*0.01);
mySerial.print(tempC);
delay(3000);
}
Cảm ơn vì đã đọc và mong nhận được nhiều góp ý từ mọi người.
Mình đang cố kết nối 1 Arduino Uno (dùng ATMEGA328P-PU) với 1 Bluetooth Module HC-05. Arduino sẽ đọc giá trị từ 1 cảm biến nhiệt độ (LM35) trên chân Analog pin 0 rồi truyền sang HC-05 để phát. Nhờ mọi người góp ý qua xem code của mình có vấn đề gì ko vì ko hiểu sao ko báo lỗi + máy tính bảng có thể pair với HC-05 nhưng app viết trên máy tính bảng ko thể nhận đc dữ liệu từ HC-05 (trong khi test app này với app BlueChat thì nhận dữ liệu từ BlueChat bình thường). Mình thử 2 kiểu như sau:
- Một là mặc định nối HC-05 với chân Tx, Rx (Digital 1, Digital 0):
int tempPin=0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
float reading = analogRead(tempPin); // đọc dữ liệu từ chân Analog 0
int tempC = reading*5.0/(1024.0*0.01); // chuyển dữ liệu đọc đc sang nhiệt độ Celcius
Serial.print(tempC);
delay(3000);
}
Trong cách 1 này thì dù mình thay Serial.write vào thì cũng ko có tác dụng gì, phần mềm vẫn ko thể nhận được dữ liệu.
- Hai là mình dùng SoftwareSerial.h:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // chân Rx là 10, Tx là 11 - cả 2 là chân Digital
int tempPin=0;
void setup()
{
mySerial.begin(9600);
}
void loop()
{
float reading = analogRead(tempPin);
int tempC = reading*5.0/(1024.0*0.01);
mySerial.print(tempC);
delay(3000);
}
Cảm ơn vì đã đọc và mong nhận được nhiều góp ý từ mọi người.
