ESP32 Đếm Lần Nhấn Button LCD

Trong hướng dẫn này, chúng ta sẽ khám phá khả năng của ESP32 để đạt được các mục tiêu sau:

Hơn nữa, hướng dẫn này đề cập đến việc chống nhiễu (debouncing) của button mà không cần dựa vào hàm delay(). Để hiểu toàn diện về tại sao debouncing lại quan trọng, bạn có thể tham khảo lời giải thích được cung cấp trong Tại sao chúng ta cần debouncing?.

Hướng dẫn này sẽ dẫn bạn qua quá trình tích hợp liền mạch việc đếm lần nhấn button, chức năng hiển thị LCD I2C, và các kỹ thuật debouncing với dự án ESP32 của bạn.

Linh Kiện Cần Thiết

1×mô-đun phát triển ESP-WROOM-32
1×Alternatively, ESP32 Uno-form board
1×Alternatively, ESP32 S3 Uno-form board
1×Cáp USB Type-C
1×Button gắn Breadboard có Nắp
1×Bộ Kit Button gắn Breadboard
1×Nút Nhấn gắn Panel
1×mô-đun nút nhấn
1×LCD I2C
1×breadboard (bo mạch thí nghiệm)
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP32
1×(Khuyến nghị) Breakout Expansion Board for ESP32
1×(Khuyến nghị) Power Splitter for ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về LCD I2C và Button

Chưa quen thuộc với LCD I2C và button, bao gồm pinout, chức năng, và lập trình? Khám phá các hướng dẫn toàn diện về những chủ đề này bên dưới:

Sơ Đồ Đấu Nối

sơ đồ đấu nối ESP32 nút nhấn lcd i2c

This image is created using Fritzing. Click to enlarge image

Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.

Code ESP32 - hiển thị số đếm button trên LCD I2C

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp32/esp32-button-count-lcd */ #include <LiquidCrystal_I2C.h> #include <ezButton.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows ezButton button(27); // create ezButton object that attach to the ESP32 pin GPIO27 unsigned long lastCount = 0; void setup() { Serial.begin(9600); lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight button.setDebounceTime(50); // set debounce time to 50 milliseconds button.setCountMode(COUNT_FALLING); } void loop() { button.loop(); // MUST call the loop() function first unsigned long count = button.getCount(); if (lastCount != count) { Serial.println(count); // print count to Serial Monitor lcd.clear(); lcd.setCursor(0, 0); // start to print at the first row lcd.print("Count: "); lcd.print(count); lastCount != count; } }

Các Bước Thực Hiện

  • Nếu đây là lần đầu bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Thực hiện đấu nối như hình ảnh trên.
  • Kết nối bo mạch ESP32 với PC của bạn qua cáp micro USB
  • Mở Arduino IDE trên PC của bạn.
  • Chọn đúng bo mạch ESP32 (ví dụ: ESP32 Dev Module) và cổng COM.
  • Nhấp vào biểu tượng Libraries trên thanh bên trái của Arduino IDE.
  • Tìm kiếm "ezButton", sau đó tìm thư viện button bởi ArduinoGetStarted
  • Nhấp nút Install để cài đặt thư viện ezButton.
thư viện nút nhấn ESP32
  • Tìm kiếm "LiquidCrystal I2C", sau đó tìm thư viện LiquidCrystal_I2C bởi Frank de Brabander
  • Nhấp nút Install để cài đặt thư viện LiquidCrystal_I2C.
thư viện ESP32 liquidcrystal i2c
  • Sao chép code ở trên và mở bằng Arduino IDE
  • Nhấp nút Upload trên Arduino IDE để upload code lên ESP32
  • Nhấn button nhiều lần
  • Xem số đếm thay đổi trên LCD

※ Lưu ý:

Địa chỉ I2C của LCD có thể khác nhau tùy theo nhà sản xuất. Trong code, chúng tôi sử dụng 0x27 được chỉ định bởi nhà sản xuất DIYables

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Bình Luận