Phần 2: Kết nối và cấu hình cảm biến khoảng cách lazer VL53L0X
1. Giới thiệu về cảm biến khoảng cách lazer, 2. Sơ đồ kết nối giữa ESP32 và cảm biến, 3. Cài đặt thư viện cho cảm biến khoảng cách, 4. Viết mã để đọc dữ liệu từ cảm biến, 5. Kiểm tra hoạt động của cảm biến.
Phần 2: Kết nối và cấu hình cảm biến khoảng cách lazer VL53L0X
1. Giới thiệu về cảm biến khoảng cách lazer
Cảm biến khoảng cách lazer VL53L0X là một cảm biến đo khoảng cách sử dụng công nghệ Time-of-Flight (ToF), cho phép đo khoảng cách với độ chính xác cao và thời gian phản hồi nhanh. Cảm biến này có thể đo khoảng cách từ 30mm đến 2m và có thể hoạt động trong nhiều điều kiện ánh sáng khác nhau.
Với kích thước nhỏ gọn và khả năng tiêu thụ điện năng thấp, VL53L0X rất phù hợp cho các ứng dụng IoT, đặc biệt là trong các dự án robot tự hành. Trong bài viết này, chúng ta sẽ tìm hiểu cách kết nối và cấu hình cảm biến VL53L0X với ESP32 để đọc dữ liệu khoảng cách.
2. Sơ đồ kết nối giữa ESP32 và cảm biến
Dưới đây là sơ đồ kết nối giữa ESP32 và cảm biến VL53L0X:
ESP32 VL53L0X
-------------------------
GPIO 21 ---- SDA
GPIO 22 ---- SCL
GND ---- GND
3.3V ---- VCC
Trong đó:
- SDA: Dữ liệu nối tiếp (Serial Data Line)
- SCL: Tín hiệu đồng hồ (Serial Clock Line)
- GND: Đất (Ground)
- VCC: Nguồn điện (3.3V)
3. Cài đặt thư viện cho cảm biến khoảng cách
Để làm việc với cảm biến VL53L0X, chúng ta cần cài đặt thư viện Adafruit_VL53L0X trong Arduino IDE. Dưới đây là các bước thực hiện:
- Mở Arduino IDE.
- Chọn Sketch > Include Library > Manage Libraries...
- Tìm kiếm Adafruit VL53L0X.
- Nhấn vào Install để cài đặt thư viện.
Sau khi cài đặt xong, bạn sẽ có thể sử dụng các hàm trong thư viện để giao tiếp với cảm biến VL53L0X.
4. Viết mã để đọc dữ liệu từ cảm biến
Dưới đây là đoạn mã mẫu để đọc dữ liệu từ cảm biến VL53L0X:
#include <Wire.h>
#include <Adafruit_VL53L0X.h>
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
void setup() {
Serial.begin(115200);
if (!lox.begin()) {
Serial.print("Không thể tìm thấy cảm biến VL53L0X");
while (1);
}
}
void loop() {
VL53L0X_RangingMeasurementData_t measure;
lox.rangingTest(&measure, false); // false để không chờ đợi
if (measure.RangeStatus == 4) {
Serial.println("Ngoài khoảng đo");
} else {
Serial.print("Khoảng cách: ");
Serial.print(measure.RangeMilliMeter);
Serial.println(" mm");
}
delay(100);
}
Trong chương trình trên:
- Chúng ta khởi tạo đối tượng lox để giao tiếp với cảm biến.
- Trong hàm setup(), chúng ta khởi tạo cảm biến và kiểm tra xem nó có hoạt động hay không.
- Trong hàm loop(), chúng ta đọc dữ liệu khoảng cách từ cảm biến và in ra màn hình Serial.
5. Kiểm tra hoạt động của cảm biến
Sau khi đã viết xong mã và tải lên ESP32, bạn hãy mở cửa sổ Serial Monitor trong Arduino IDE. Đảm bảo rằng tốc độ baud rate được đặt là 115200.
Giữ cảm biến ở khoảng cách khác nhau so với vật cản và bạn sẽ thấy dữ liệu khoảng cách được in ra. Nếu cảm biến hoạt động bình thường, bạn sẽ nhận được giá trị khoảng cách từ 30mm đến 2000mm.
Lưu ý: Nếu bạn thấy thông báo "Không thể tìm thấy cảm biến VL53L0X", hãy kiểm tra lại kết nối dây và đảm bảo rằng nguồn điện cung cấp là 3.3V.
Với các bước trên, bạn đã hoàn thành việc kết nối và cấu hình cảm biến khoảng cách lazer VL53L0X với ESP32. Trong phần tiếp theo, chúng ta sẽ tìm hiểu cách sử dụng dữ liệu khoảng cách này để điều khiển robot tự hành của bạn.
