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.
Cách sử dụng Bàn phím mềm 4x4 với Arduino
Trong hướng dẫn này, chúng ta sẽ khám phá cách kết nối và sử dụng bàn phím mềm 4x4 với Arduino. Bàn phím này có mười sáu phím nhưng chỉ cần tám chân để kết nối, khiến nó trở thành một thiết bị đầu vào nhỏ gọn và hiệu quả cho nhiều dự án khác nhau. Đến cuối hướng dẫn này, bạn sẽ có thể đọc đầu vào từ bàn phím và kích hoạt các hành động dựa trên những đầu vào đó.

Chúng ta sẽ sử dụng thư viện Keypad để giao tiếp với bàn phím, cho phép chúng ta dễ dàng phát hiện phím nào đang được nhấn. Chương trình chúng ta sẽ triển khai sẽ hiển thị phím được nhấn trên màn hình nối tiếp và thực hiện hành động khi một phím cụ thể được nhấn, chẳng hạn như phím '4'. Để có hướng dẫn trực quan hơn, hãy nhớ xem video (trong video tại 00:00).
Phần cứng được giải thích
Thành phần chính của dự án này là bàn phím mềm 4x4, bao gồm 16 nút được bố trí theo dạng lưới. Mỗi nút kết nối với một chân cụ thể trên Arduino, cho phép nó phát hiện khi một nút được nhấn. Bàn phím hoạt động bằng phương pháp quét ma trận, trong đó các hàng và cột được kích hoạt tuần tự để xác định phím nào đang được nhấn.
Để kết nối bàn phím, bạn sẽ cần sử dụng tám chân kỹ thuật số trên Arduino. Các hàng thường được kết nối với các chân 2 đến 5, trong khi các cột kết nối với các chân 6 đến 9. Sự sắp xếp này cho phép Arduino đọc trạng thái của từng phím một cách hiệu quả.
Chi tiết bảng dữ liệu
| Chiều rộng | 69mm |
|---|---|
| Chiều dài | 76mm |
| Chiều dài cáp | 84mm |
| Chiều rộng đầu nối | 20mm |
| Khoảng cách lỗ đầu nối | 2.56mm |
- Đảm bảo đấu dây đúng các chân hàng và cột để tránh đọc sai.
- Sử dụng điện trở kéo lên nếu cần thiết để ổn định các lần đọc đầu vào.
- Chống nhiễu phím trong phần mềm để tránh đọc nhiều lần cho một lần nhấn.
- Kiểm tra từng phím riêng lẻ để đảm bảo hoạt động.
- Giữ bàn phím khô ráo và sạch sẽ để duy trì hiệu suất.
Hướng dẫn đấu dây

Để đấu dây bàn phím 4x4 với Arduino, hãy kết nối các chân hàng của bàn phím với các chân kỹ thuật số trên Arduino như sau: kết nối hàng đầu tiên với chân 2, hàng thứ hai với chân 3, hàng thứ ba với chân 4 và hàng thứ tư với chân 5. Đối với các chân cột, hãy kết nối cột đầu tiên với chân 6, cột thứ hai với chân 7, cột thứ ba với chân 8 và cột thứ tư với chân 9.
Thiết lập này cho phép Arduino quét qua các hàng và cột một cách hiệu quả. Hãy đảm bảo kiểm tra kỹ các kết nối để chắc chắn rằng mỗi chân tương ứng đúng với hàng hoặc cột được chỉ định. Trong video, các cấu hình đấu dây thay thế được thảo luận ngắn gọn (trong video tại 01:15). Nếu bạn chọn đấu dây khác, chỉ cần cập nhật số chân trong mã cho phù hợp.
Ví dụ mã và hướng dẫn chi tiết
Trong mã, chúng ta bắt đầu bằng việc bao gồm thư viện Keypad và định nghĩa bố cục của bàn phím. Các hàng và cột được thiết lập bằng mảng, trong đó rowPins ánh xạ đến các chân kỹ thuật số được kết nối với các hàng và colPins ánh xạ đến các cột.
const byte ROWS = 4; //bốn hàng
const byte COLS = 4; //bốn cột
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
Trong đoạn trích này, chúng ta định nghĩa số hàng và số cột, cũng như bố cục ký tự của các phím. Thiết lập này rất quan trọng để xác định phím nào đang được nhấn dựa trên hàng và cột được kích hoạt.
void setup(){
Serial.begin(9600);
}
Hàm setup khởi tạo giao tiếp nối tiếp ở tốc độ baud 9600. Điều này quan trọng để gửi dữ liệu phím nhấn đến màn hình nối tiếp để gỡ lỗi và xác minh.
void loop(){
char key = keypad.getKey();
if (key){
Serial.println(key);
}
if (key =='4'){
Serial.println("Phím 4 đang được nhấn");
}
}
Trong hàm loop, chúng ta liên tục kiểm tra phím được nhấn bằng keypad.getKey(). Nếu một phím được nhấn, nó sẽ in giá trị phím ra màn hình nối tiếp. Ngoài ra, nếu phím '4' được nhấn, nó sẽ in một thông báo cụ thể cho biết phím '4' đã được kích hoạt. Phần mã này cho phép tương tác theo thời gian thực dựa trên đầu vào của người dùng.
Trình diễn / Điều gì sẽ xảy ra
Khi mọi thứ đã được thiết lập và mã được tải lên Arduino của bạn, bạn sẽ thấy các phím được nhấn hiển thị trên Màn hình nối tiếp. Nếu bạn nhấn phím '4', thông báo "Phím 4 đang được nhấn" sẽ xuất hiện, xác nhận rằng đầu vào đã được phát hiện thành công. Hãy cẩn thận với các lỗi thường gặp, chẳng hạn như đầu vào nổi hoặc đấu dây sai, có thể dẫn đến các lần đọc sai (trong video tại 02:30).
Mốc thời gian video
- 00:00 - Giới thiệu về bàn phím
- 01:15 - Hướng dẫn đấu dây
- 02:30 - Giải thích mã và trình diễn
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 cho Bàn phím Bốn Phím
- 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
- 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
/*
* Original source: https://playground.arduino.cc/Code/Keypad
* This is the Arduino code for a 4x4 keypad.
* Watch the video for details and demo: http://youtu.be/qIDzzG2LUtg
*
* Written by Ahmad Nejrabi for Robojax Video channel: www.Robojax.com
* Date: December 18, 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
*
*/
/* @file HelloKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates the simplest use of the matrix Keypad library.
|| #
*/
#include <Keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,8,9}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
Serial.begin(9600);
}
void loop(){
char key = keypad.getKey();
// Just print the pressed key
if (key){
Serial.println(key);
}
// This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
if (key =='4'){
Serial.println("Key 4 is pressed");
}
}
Nghĩ bạn có thể cần
-
AmazonBuy 4x4 keypad from Amazonamzn.to
-
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.