Hướng dẫn này là một phần của: Bàn phím
Tất cả các video hướng dẫn sử dụng bàn phím đều được liệt kê ở đây.
Mã Arduino và Video cho Bàn phím Bốn Phím
Trong hướng dẫn này, chúng ta sẽ học cách sử dụng bàn phím bốn phím với Arduino. Dự án này đặc biệt hữu ích cho các ứng dụng cần nhiều nút bấm nhưng muốn giảm thiểu số lượng dây sử dụng. Bằng cách kết nối bàn phím theo một cách cụ thể, chúng ta có thể thiết lập hoạt động chỉ với năm dây thay vì tám dây.

Bàn phím bốn phím đơn giản hóa quá trình đi dây vì nó có một kết nối chung giúp giảm tổng số dây cần thiết. Mỗi phím được kết nối với Arduino thông qua các chân được chỉ định, cho phép tương tác và điều khiển dễ dàng. Hướng dẫn này sẽ bao gồm cách đi dây, mã code và hành vi dự kiến của bàn phím để bạn có thể sao chép dự án thành công (trong video ở phút 02:30).
Phần cứng được giải thích
Các thành phần chính của dự án này bao gồm bàn phím bốn phím và bo mạch Arduino. Bàn phím chứa bốn nút bấm và mỗi nút kết nối với Arduino qua hai dây—một dây chung và một dây riêng cho mỗi nút. Thiết lập này cho phép kết nối đơn giản trong khi giảm thiểu sự lộn xộn.
Arduino diễn giải các lần nhấn nút bằng cách sử dụng đầu vào kỹ thuật số, dựa vào điện trở kéo lên nội bộ để đảm bảo kết quả đọc ổn định. Khi một nút được nhấn, nó kết nối chân tương ứng với đất, cho phép Arduino phát hiện sự thay đổi trạng thái.
Chi tiết bảng dữ liệu
| Nhà sản xuất | Generic |
|---|---|
| Số bộ phận | Bàn phím 4 phím |
| Điện áp Logic/IO | 5 V |
| Điện áp cung cấp | 5 V |
| Số lượng phím | 4 |
| Loại chân chung | Tích cực thấp |
| Điện trở nút bấm | 1 kΩ (điển hình) |
| Bao bì | PCB linh hoạt |
| Ghi chú / biến thể | Có sẵn trong nhiều bố cục |
- Mỗi nút yêu cầu hai kết nối: một cho nút và một cho đất chung.
- Sử dụng điện trở kéo lên nội bộ giúp đơn giản hóa việc đi dây và giảm số lượng linh kiện.
- Đảm bảo chân chung được kết nối với đất để hoạt động chính xác.
- Chống nhiễu (debounce) các lần nhấn nút trong phần mềm để tránh đọc sai.
- Kiểm tra chức năng nút bằng cách in đơn giản ra serial để phản hồi.
Hướng dẫn đi dây

Để đi dây bàn phím bốn phím với Arduino, hãy làm theo các bước sau:
- Kết nối dây phím đầu tiên với chân
2trên Arduino. - Kết nối dây phím thứ hai với chân
3. - Kết nối dây phím thứ ba với chân
4. - Kết nối dây phím thứ tư với chân
5. - Kết nối dây chung từ bàn phím với chân đất trên Arduino.
Đảm bảo kết nối chắc chắn từng dây để tránh các kết nối lỏng lẻo. Nếu bạn gặp sự cố, hãy kiểm tra lại từng kết nối so với các chân được gán trong video (trong video ở phút 04:15).
Ví dụ mã code & hướng dẫn chi tiết
Đoạn mã sau khởi tạo các chân cho bàn phím và đặt chúng làm đầu vào:
#define key1 2 //kết nối dây 1 với chân 2
#define key2 3 //kết nối dây 2 với chân 3
#define key3 4 //kết nối dây 3 với chân 4
#define key4 5 //kết nối dây 4 với chân 5
void setup() {
Serial.begin(9600);
pinMode(key1, INPUT_PULLUP); // đặt chân làm đầu vào
pinMode(key2, INPUT_PULLUP); // đặt chân làm đầu vào
pinMode(key3, INPUT_PULLUP); // đặt chân làm đầu vào
pinMode(key4, INPUT_PULLUP); // đặt chân làm đầu vào
}
Trong mã trên, mỗi phím được định nghĩa với số chân tương ứng. Chế độ INPUT_PULLUP đảm bảo các chân đọc mức cao khi không được nhấn, giúp đơn giản hóa việc phát hiện nhấn nút.
Hàm loop đọc trạng thái của từng phím và in thông báo tương ứng khi được nhấn:
void loop() {
int key1S = digitalRead(key1); // đọc xem key1 có được nhấn không
int key2S = digitalRead(key2); // đọc xem key2 có được nhấn không
int key3S = digitalRead(key3); // đọc xem key3 có được nhấn không
int key4S = digitalRead(key4); // đọc xem key4 có được nhấn không
if(!key1S) {
Serial.println("phím 1 được nhấn");
}
if(!key2S) {
Serial.println("phím 2 được nhấn");
}
// Mã bổ sung cho key3 và key4...
delay(100);
}
Đoạn mã này kiểm tra trạng thái của từng phím và in thông báo ra màn hình serial khi một phím được nhấn. delay(100) cho phép hiệu ứng chống nhiễu, đảm bảo các lần nhấn liên tiếp không được ghi nhận quá nhanh.
Trình diễn / Điều mong đợi
Sau khi đi dây và tải mã lên Arduino thành công, bạn sẽ thấy màn hình serial hiển thị thông báo cho biết phím nào được nhấn. Nhấn phím một sẽ xuất ra "phím 1 được nhấn" và tương tự cho các phím khác. Nếu thông báo không xuất hiện, hãy kiểm tra lại dây nối và đảm bảo dây chung được kết nối với đất.
Hãy cẩn thận với các kết nối bị đảo ngược vì điều này có thể dẫn đến hành vi không mong muốn. Đảm bảo các chân được sử dụng khớp với những gì được định nghĩa trong mã của bạn (trong video ở phút 06:45).
Mốc thời gian video
- 00:00 - Giới thiệu
- 02:30 - Giải thích về đi dây
- 04:15 - Gán chân
- 06:45 - Kiểm tra bàn phím
Hướng dẫn này là một phần của: Bàn phím
- Sử dụng bàn phím 4x3 với Arduino
- Mã Arduino và Video: Bàn phím ma trận 4x4 màu đen
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- Cách sử dụng Bàn phím mềm 4x4 với Arduino
- How to Use a 5x4 20-Key Keypad with Arduino to Detect Strings
- Lesson 67: Controlling an 8-Channel Relay with a Keypad Using Arduino
- 1602 LCD Keypad Shield: Mã Cơ Bản
++
/*
* This is the Arduino code for a 4-key keypad.
* Watch the video for details and demo: https://youtu.be/BiOh_Z2N7kk
*
* Written by Ahmad Shamshiri for the Robojax Video channel,
get code, wiring diagram and resources at www.Robojax.com/RJT37
* Date: December 28, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code, given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
* This code has been downloaded from https://robojax.com
// Recorded December 28, 2017 for Robojax.com
#define key1 2 //connect wire 1 to pin 2
#define key2 3 //connect wire 2 to pin 3
#define key3 4 //connect wire 3 to pin 4
#define key4 5 //connect wire 4 to pin 5
void setup() {
Serial.begin(9600);
pinMode(key1, INPUT_PULLUP);// set pin as input
pinMode(key2, INPUT_PULLUP);// set pin as input
pinMode(key3, INPUT_PULLUP);// set pin as input
pinMode(key4, INPUT_PULLUP);// set pin as input
}
void loop() {
int key1S = digitalRead(key1);// read if key1 is pressed
int key2S = digitalRead(key2);// read if key2 is pressed
int key3S = digitalRead(key3);// read if key3 is pressed
int key4S = digitalRead(key4);// read if key4 is pressed
// Code written for Robojax.com video tutorial
if(!key1S){
Serial.println("key 1 is pressed");
}
if(!key2S){
Serial.println("key 2 is pressed");
}
if(!key3S){
Serial.println("key 3 is pressed");
}
if(!key4S){
Serial.println("key 4 is pressed");
}
delay(100);
}
Nghĩ bạn có thể cần
-
Amazon
-
AliExpressBuy soft keypad from AliExpresss.click.aliexpress.com
Tài nguyên & tài liệu tham khảo
Chưa có tài nguyên nào.