ESP8266 Bàn phím 1×4

Hướng dẫn này sẽ dạy bạn cách vận hành một bàn phím 1×4 với ESP8266. Chúng ta sẽ đề cập đến:

ESP8266 NodeMCU bàn phím 1×4

Phần cứng cần chuẩn bị

1×ESP8266 NodeMCU ESP-12E
1×Recommended: ESP8266 NodeMCU ESP-12E (Uno-form)
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 ESP8266
1×(Khuyến nghị) Power Splitter for ESP8266 Type-C

Or you can buy the following kits:

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

Về bàn phím 1x4

Một bàn phím 1x4 có bốn nút nằm thành một hàng. Nó thường được dùng để nhập mật khẩu, di chuyển qua các menu, hoặc điều khiển các thiết bị.

Cấu hình chân

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

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

Sơ đồ đấu dây

sơ đồ nối dây bàn phím 1×4 ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Xem thêm Sơ đồ chân ESP8266Cách cấp nguồn cho ESP8266.

Mã nguồn ESP8266

Mọi phím trên bàn phím 1x4 đều hoạt động như một nút nhấn. Chúng ta có thể dùng hàm digitalRead() để kiểm tra trạng thái của từng phím. Giống như với bất kỳ nút nhấn nào, có thể xảy ra hiện tượng nảy khiến một lần nhấn trông như nhiều lần nhấn. Để ngăn hiện tượng nảy, chúng ta cần debounce cho từng phím. Việc làm điều này cho bốn phím mà không ảnh hưởng đến các phần khác của mã có thể khó khăn. May mắn thay, thư viện ezButton làm cho việc này trở nên dễ dàng hơn.

#include <ezButton.h> #define KEY_NUM 4 // the number of keys #define PIN_KEY_1 D5 // The ESP8266 NodeMCU pin connected to the key 1 #define PIN_KEY_2 D6 // The ESP8266 NodeMCU pin connected to the key 2 #define PIN_KEY_3 D1 // The ESP8266 NodeMCU pin connected to the key 3 #define PIN_KEY_4 D2 // The ESP8266 NodeMCU pin 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; }

Hướng dẫn từng bước

Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:

  • Hãy tham khảo tutorial ESP8266 - Cài đặt phần mềm nếu đây là lần đầu tiên bạn sử dụng ESP8266.
  • Kết nối ESP8266 với bàn phím 1×4.
  • Kết nối bo mạch ESP8266 với máy tính của bạn bằng một cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch ESP8266 phù hợp, ví dụ NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng của nó.
  • Nhấp vào biểu tượng Libraries ở phía bên trái của Arduino IDE.
  • Tìm kiếm ezButton để tìm thư viện nút từ ESP8266GetStarted.com.
  • Nhấp vào nút Install để cài đặt thư viện ezButton.
thư viện nút nhấn ESP8266 NodeMCU
  • Sao chép mã và mở nó trong Arduino IDE
  • Nhấn nút Tải lên trong Arduino IDE để nạp mã vào ESP8266 của bạn
  • Mở Serial Monitor
  • Nhấn lần lượt từng phím trên bàn phím 1x4
  • Kiểm tra kết quả trong Serial Monitor
COM6
Send
1 2 3 4
Autoscroll Show timestamp
Clear output
9600 baud  
Newline