ESP32 Keypad 1x4

Trong hướng dẫn này, chúng ta sẽ khám phá cách sử dụng keypad 1x4 với ESP32. Chúng ta sẽ tìm hiểu:

ESP32 bàn phím ma trận 1x4

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×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×Bàn phím ma trận 1x4
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ề Keypad 1x4

Keypad 1x4 có bốn nút nhấn màng được sắp xếp thành một hàng. Nó thường được sử dụng để cho phép người dùng nhập dữ liệu như mật khẩu, điều hướng menu, hoặc điều khiển thiết bị.

Sơ Đồ Chân

Keypad 1x4 có 5 chân. Sự sắp xếp của các chân này không khớp với thứ tự của nhãn các phím.

  • Pin 1: kết nối với phím 2
  • Pin 2: kết nối với phím 1
  • Pin 3: kết nối với phím 4
  • Pin 4: kết nối với phím 3
  • Pin 5: kết nối với tất cả phím và là chân chung
bàn phím ma trận 1x4 sơ đồ chân
image source: diyables.io

Sơ Đồ Đấu Nối

ESP32 bàn phím ma trận 1x4 sơ đồ đấu dây

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

Mỗi phím trên keypad 1x4 hoạt động như một nút nhấn. Điều này cho phép chúng ta sử dụng hàm digitalRead() để kiểm tra trạng thái của từng phím. Tuy nhiên, giống như các nút nhấn khác, những phím này có thể 'bounce'. Điều này có nghĩa là một lần nhấn có thể được phát hiện như nhiều lần nhấn. Để khắc phục điều này, chúng ta phải debounce từng phím. Làm điều này cho bốn phím mà không làm gián đoạn các phần code khác có thể khó khăn. May mắn thay, thư viện ezButton giúp việc này dễ dàng hơn.

#include <ezButton.h> #define KEY_NUM 4 // the number of keys #define PIN_KEY_1 26 // The ESP32 pin GPIO26 connected to the key 1 #define PIN_KEY_2 25 // The ESP32 pin GPIO25 connected to the key 2 #define PIN_KEY_3 14 // The ESP32 pin GPIO14 connected to the key 3 #define PIN_KEY_4 27 // The ESP32 pin GPIO27 connected to the key 4 ezButton keypad_1x4[] = { ezButton(PIN_KEY_1), ezButton(PIN_KEY_2), ezButton(PIN_KEY_3), ezButton(PIN_KEY_4) }; void setup() { Serial.begin(9600); for (byte i = 0; i < KEY_NUM; i++) { keypad_1x4[i].setDebounceTime(100); // set debounce time to 100 milliseconds } } void loop() { int key = getKeyPressed(); if (key) { Serial.print("The key "); Serial.print(key); Serial.println(" is pressed"); } } int getKeyPressed() { for (byte i = 0; i < KEY_NUM; i++) keypad_1x4[i].loop(); // MUST call the loop() function first for (byte i = 0; i < KEY_NUM; i++) { // get key state after debounce int key_state = keypad_1x4[i].getState(); // the state after debounce if (keypad_1x4[i].isPressed()) return (i + 1); } return 0; }

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

  • Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Kết nối ESP32 với keypad 1x4.
  • Kết nối board ESP32 với PC qua cáp USB
  • Mở Arduino IDE trên PC của bạn.
  • Chọn đúng board ESP32 (ví dụ: ESP32 Dev Module) và cổng COM.
  • Điều hướng đến 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 của ArduinoGetStarted.com
  • Nhấp nút Install để cài đặt thư viện ezButton.
Arduino nút nhấn thư viện
  • Sao chép code và mở trong Arduino IDE
  • Nhấp nút Upload trong Arduino IDE để gửi code đến ESP32
  • Mở Serial Monitor
  • Nhấn từng phím trên keypad 1x4
  • Kiểm tra kết quả trong Serial Monitor
COM6
Send
1 2 3 4
Autoscroll Show timestamp
Clear output
9600 baud  
Newline