Tìm kiếm mã

Bài 20/31: Hiển thị khoảng cách siêu âm trên LCD1602

Bài 20/31: Hiển thị khoảng cách siêu âm trên LCD1602

Dự án này minh họa cách kết hợp cảm biến khoảng cách siêu âm HC-SR04 với màn hình LCD1602 hỗ trợ I2C để tạo ra một hệ thống đo khoảng cách thời gian thực. Kết thúc hướng dẫn này, bạn sẽ có một thiết bị hoạt động liên tục đo và hiển thị khoảng cách đến một vật thể bằng đơn vị centimet. Đây là một kỹ năng nền tảng trong điện tử Arduino, vì nó kết hợp đầu vào cảm biến với đầu ra hình ảnh.

Sunfounder 20-LCD1602-ultrasonic

Thiết lập thực tế này có thể được sử dụng trong nhiều ứng dụng thực tế khác nhau, bao gồm:

  • Tạo trợ lý đỗ xe thông minh giúp bạn ước lượng khoảng cách đến tường hoặc xe khác.
  • Xây dựng thiết bị giám sát mức chất lỏng đơn giản cho bồn chứa bằng cách đo khoảng cách từ đỉnh đến bề mặt.
  • Phát triển máy phân phối nước rửa tay tự động hoặc thùng rác không chạm mở khi có vật thể ở gần.
  • Chế tạo hệ thống báo động an ninh cơ bản kích hoạt khi có người bước vào một khu vực cụ thể.

Phần cứng và Linh kiện

Để xây dựng dự án này, bạn sẽ cần các linh kiện sau:

  • Bo mạch Arduino (ví dụ: Uno)
  • Màn hình LCD1602 với mô-đun giao diện I2C
  • Cảm biến khoảng cách siêu âm HC-SR04
  • Dây jumper
  • Breadboard (tùy chọn, để kết nối dễ dàng hơn)

Tìm hiểu về LCD1602 và I2C

LCD1602 là một màn hình phổ biến có khả năng hiển thị 16 ký tự mỗi dòng trên hai dòng. Mô-đun "I2C" ở mặt sau là một lợi thế đáng kể vì nó giảm số chân cần thiết để điều khiển màn hình từ 6 hoặc nhiều hơn xuống chỉ còn 2 chân để giao tiếp (SDA và SCL) và 2 chân để cấp nguồn (VCC và GND). Sự đơn giản hóa này làm cho việc đi dây gọn gàng hơn nhiều và giải phóng các chân kỹ thuật số quý giá trên Arduino của bạn cho các cảm biến khác, như cảm biến siêu âm được sử dụng trong dự án này. (trong video ở phút 01:30)

Mô-đun I2C cũng có một chiết áp nhỏ để điều chỉnh độ tương phản của màn hình. Nếu bạn cấp nguồn cho màn hình và không thấy gì, hãy thử xoay vít này cho đến khi văn bản hiển thị rõ. (trong video ở phút 02:47)

Hướng dẫn Đi dây

LCD1602_wiring_ultrasonic_bb

Việc kết nối các linh kiện khá đơn giản. Mô-đun I2C của LCD có bốn chân cần được kết nối với Arduino. Cảm biến siêu âm cũng có bốn chân.

Dưới đây là chi tiết các kết nối:

Mô-đun I2C LCD1602 với Arduino:

  • GND đến GND của Arduino
  • VCC đến 5V của Arduino
  • SDA đến A4 của Arduino
  • SCL đến A5 của Arduino

Cảm biến siêu âm HC-SR04 với Arduino:

  • VCC đến 5V của Arduino
  • Trig đến chân kỹ thuật số 12 của Arduino
  • Echo đến chân kỹ thuật số 11 của Arduino
  • GND đến GND của Arduino

Sơ đồ đi dây cho dự án này được tham chiếu trong video.

Cài đặt các Thư viện Cần thiết

Dự án này phụ thuộc vào hai thư viện quan trọng. Thư viện đầu tiên, LiquidCrystal_I2C, cần thiết để điều khiển LCD và không được bao gồm mặc định trong Arduino IDE. Bạn có thể tải xuống từ liên kết được cung cấp trong mô tả video hoặc từ trang web Robojax. (trong video ở phút 06:16)

Thư viện thứ hai, NewPing, được sử dụng để giao tiếp với cảm biến siêu âm. Nó đơn giản hóa quá trình gửi một xung và đọc thời gian phản hồi. Cả hai thư viện có thể được cài đặt thông qua Trình quản lý Thư viện của Arduino IDE bằng cách đi tới Sketch -> Include Library -> Manage Libraries và tìm kiếm tên của chúng.

Giải thích Mã

Chương trình này kết hợp chức năng của LCD và cảm biến siêu âm. Mã được cấu trúc để dễ dàng cấu hình cho thiết lập cụ thể của bạn.

Ở đầu mã, bạn sẽ tìm thấy các biến chính mà bạn có thể cần điều chỉnh:

// Đặt địa chỉ LCD là 0x27 cho màn hình 16 ký tự và 2 dòng
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);

#define TRIGGER_PIN  12  // Chân Arduino kết nối với chân trigger trên cảm biến siêu âm.
#define ECHO_PIN     11  // Chân Arduino kết nối với chân echo trên cảm biến siêu âm.
#define MAX_DISTANCE 190 // Khoảng cách tối đa chúng ta muốn đo (tính bằng centimet).
  • Địa chỉ LCD (0x27): Đây là địa chỉ I2C của mô-đun LCD của bạn. Hầu hết các mô-đun sử dụng 0x27, nhưng một số có thể sử dụng 0x3F. Nếu màn hình của bạn không hiển thị gì, bạn có thể cần chạy một chương trình quét I2C để tìm địa chỉ chính xác và cập nhật giá trị này. (trong video ở phút 08:11)
  • TRIGGER_PIN và ECHO_PIN: Các định nghĩa này xác định các chân kỹ thuật số của Arduino kết nối với chân Trig và Echo của cảm biến siêu âm. Nếu bạn sử dụng các chân khác, hãy thay đổi các định nghĩa này.
  • MAX_DISTANCE: Giá trị này đặt khoảng cách tối đa tính bằng centimet mà cảm biến sẽ đo. HC-SR04 có thể đo lên đến 400-500cm, nhưng đặt giá trị thấp hơn có thể cải thiện độ chính xác và độ tin cậy của các phép đo, đặc biệt là cho khoảng cách ngắn hơn.

Trong hàm loop(), mã thực hiện các bước sau:

  1. Nó sử dụng hàm sonar.ping_cm() để đo khoảng cách và lưu vào biến distance.
  2. Nó xóa màn hình LCD và in văn bản "Robojax.com" trên dòng đầu tiên.
  3. Sau đó, nó đặt con trỏ đến dòng thứ hai và in "Distance: ".
  4. Cuối cùng, nó di chuyển con trỏ đến vị trí 10 trên dòng thứ hai để in giá trị distance đo được, theo sau là "cm".

Lệnh delay(200) ở cuối vòng lặp điều khiển tần suất cảm biến thực hiện phép đo mới và cập nhật màn hình.

Trình diễn mã

Khi mã được tải lên Arduino của bạn, màn hình LCD sẽ sáng lên và bắt đầu hiển thị khoảng cách. Bạn có thể kiểm tra thiết lập bằng cách di chuyển tay hoặc một vật thể lại gần và ra xa cảm biến siêu âm. Con số trên màn hình sẽ cập nhật theo thời gian thực, hiển thị khoảng cách bằng centimet. (trong video tại 38:07)

Các dự án liên quan từ video này

Các chương

  • [00:00] Giới thiệu về LCD1602 và Tổng quan dự án
  • [01:30] Giải thích về phần cứng LCD1602 và mô-đun I2C
  • [03:14] Sơ đồ chân LCD và cấu hình địa chỉ I2C
  • [05:28] Sơ đồ đấu dây cho LCD1602
  • [06:16] Cài đặt thư viện LCD cần thiết
  • [07:24] Mã cơ bản để in văn bản trên LCD
  • [08:11] Tìm địa chỉ I2C của LCD của bạn
  • [11:10] Ví dụ về LCD: Con trỏ nhấp nháy và ký tự tùy chỉnh
  • [18:51] Ví dụ về LCD: Hiển thị nối tiếp và văn bản cuộn
  • [24:36] Hiển thị nhiệt độ và độ ẩm DHT11 trên LCD
  • [33:00] Hiển thị điện áp từ chiết áp trên LCD
  • [35:56] Kết hợp mã cảm biến siêu âm với LCD
  • [38:07] Trình diễn hiển thị khoảng cách siêu âm

Hình ảnh

Sunfounder car assembled
Sunfounder car assembled
Sunfounder 20-LCD1602-ultrasonic
Sunfounder 20-LCD1602-ultrasonic
LCD1602_wiring_ultrasonic_bb
LCD1602_wiring_ultrasonic_bb
921-Lesson 20/31: Displaying distance from ultrasonic sensor on LCD1602
Ngôn ngữ: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Tài nguyên & tài liệu tham khảo

Tập tin📁

Thư viện Arduino (tệp nén)

Hướng dẫn Sử dụng