This tutorial is part of: 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.
1602 LCD Keypad Shield: Mã Cơ Bản
Trong hướng dẫn này, chúng ta sẽ khám phá cách lập trình và sử dụng một 1602 LCD Keypad Shield với Arduino. Shield này có màn hình hiển thị 16 ký tự trên 2 dòng và một bàn phím cho phép thực hiện nhiều chức năng nhập liệu khác nhau. Đến cuối hướng dẫn này, bạn sẽ có thể hiển thị thông điệp và phản hồi các thao tác nhấn phím một cách hiệu quả.
Trọng tâm sẽ là tạo một chương trình đơn giản để phát hiện các thao tác nhấn phím và hiển thị các thông điệp tương ứng trên màn hình LCD. Bạn có thể xem video để theo dõi phần trình diễn trực quan (trong video tại 03:00).
Giải thích về Phần cứng
Thành phần chính trong bản dựng này là 1602 LCD Keypad Shield. Shield này kết nối trực tiếp với bo mạch Arduino và cung cấp cả màn hình hiển thị lẫn bàn phím để tương tác với người dùng. Màn hình LCD có thể hiển thị các thông điệp văn bản, trong khi bàn phím cho phép người dùng chọn các tùy chọn thông qua nhiều nút bấm khác nhau.
Bàn phím hoạt động bằng cách sử dụng một đầu vào analog, mà Arduino đọc để xác định nút nào đang được nhấn. Mỗi nút có một điện trở duy nhất, cho phép vi điều khiển xác định nút dựa trên giá trị analog nhận được từ cảm biến.
Chi tiết từ Bảng dữ liệu
| Nhà sản xuất | Generic |
|---|---|
| Số bộ phận | 1602 LCD Keypad Shield |
| Điện áp Logic/IO | 5 V |
| Điện áp cấp nguồn | 5 V |
| Dòng điện đầu ra (mỗi kênh) | 2 mA |
| Dòng điện đỉnh (mỗi kênh) | 20 mA |
| Hướng dẫn tần số PWM | N/A |
| Ngưỡng logic đầu vào | 0,3 Vcc đến 0,7 Vcc |
| Sụt áp / RDS(on) / bão hòa | N/A |
| Giới hạn nhiệt | 70 °C |
| Kiểu đóng gói | Định dạng Shield |
| Ghi chú / biến thể | Tương thích với Arduino Uno |
- Đảm bảo LCD được cấp nguồn ở mức 5 V để tránh hư hỏng.
- Sử dụng điện trở kéo lên phù hợp cho bàn phím nếu cần.
- Chống nhiễu phím nhấn trong mã để tránh kích hoạt nhiều lần.
- Theo dõi các giới hạn dòng điện để tránh quá nhiệt.
- Kiểm tra các kết nối trước khi cấp nguồn cho mạch.
Hướng dẫn Đấu dây
Để đấu dây 1602 LCD Keypad Shield, chỉ cần cắm trực tiếp vào bo mạch Arduino. Shield được thiết kế để khớp với cấu hình chân của Arduino Uno. Đảm bảo các chân được kết nối chắc chắn.
Các nút bàn phím kết nối với chân đầu vào analog A0. Các đường dữ liệu LCD được xử lý nội bộ bởi thư viện được sử dụng, vì vậy bạn sẽ không cần phải đấu dây chúng riêng biệt. Shield cũng sử dụng một vài chân kỹ thuật số để điều khiển đèn nền và các chức năng khác, được xác định trước trong thư viện. Nếu bạn làm theo tài liệu của thư viện, bạn sẽ thấy rằng nó thường tự động xử lý các kết nối này.
Ví dụ Mã & Hướng dẫn Chi tiết
Trong mã, trước tiên chúng ta bao gồm thư viện cần thiết để điều khiển LCD:
#include <LCD4Bit_mod.h>
Thư viện này hỗ trợ giao tiếp với 1602 LCD. Sau đó, chúng ta tạo một phiên bản của đối tượng LCD với số dòng được chỉ định.
Tiếp theo, chúng ta khởi tạo LCD trong hàm setup():
lcd.init();
Dòng này chuẩn bị LCD để sử dụng. Sau khi khởi tạo, chúng ta có thể hiển thị một thông điệp kiểm tra bằng hàm lcd.printIn().
Trong vòng lặp chính, chúng ta đọc đầu vào analog để phát hiện các thao tác nhấn phím:
adc_key_in = analogRead(0);
Dòng này đọc giá trị từ bàn phím. Giá trị giúp xác định phím nào đã được nhấn bằng hàm get_key() chuyển đổi giá trị ADC thành số phím.
Trình diễn / Điều gì sẽ xảy ra
Khi bạn chạy mã, việc nhấn các nút sẽ hiển thị các thông điệp tương ứng với phím được nhấn trên màn hình LCD. Ví dụ, nhấn phím phải sẽ hiển thị "Right Key OK" trên màn hình (trong video tại 05:30). Nếu việc phát hiện phím không hoạt động chính xác, hãy kiểm tra hệ thống dây điện và đảm bảo các thư viện chính xác được bao gồm trong Arduino IDE của bạn.
Mốc thời gian Video
- 00:00 - Giới thiệu
- 03:00 - Tổng quan về Mã
- 05:30 - Trình diễn Nhấn Phím
This tutorial is part of: 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
- 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
// Example use of LCD4Bit_mod library
// Downloaded from https://github.com/douggilliland/lb-Arduino-Code/tree/master/libraries/LCD4Bit_mod
// October 1, 2017. This example will work with a 1602 LCD keypad shield.
// Code used for a YouTube video for the Robojax channel
// Watch the video https://youtu.be/naSSiS_9rEw
#include <LCD4Bit_mod.h>
// Create an object to control an LCD.
// Number of lines in display = 1
LCD4Bit_mod lcd = LCD4Bit_mod(2);
// Key messages
char msgs[5][15] = {"Right Key OK ",
"Up Key OK ",
"Down Key OK ",
"Left Key OK ",
"Select Key OK" };
int adc_key_val[5] ={30, 150, 360, 535, 760 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;
void setup() {
pinMode(13, OUTPUT); // We'll use the debug LED to output a heartbeat
lcd.init();
// Optionally, now set up our application-specific display settings, overriding whatever the LCD did in lcd.init()
// lcd.commandWrite(0x0F);// Cursor on, display on, blink on. (Nasty!)
lcd.clear();
lcd.printIn("Robojax.com Testing");
}
void loop() {
adc_key_in = analogRead(0); // Read the value from the sensor
digitalWrite(13, HIGH);
key = get_key(adc_key_in); // Convert into key press
if (key != oldkey) // If keypress is detected
{
delay(50); // Wait for debounce time
adc_key_in = analogRead(0); // Read the value from the sensor
key = get_key(adc_key_in); // Convert into key press
if (key != oldkey)
{
oldkey = key;
if (key >=0){
lcd.cursorTo(2, 0); // Line = 2, x = 0
lcd.printIn(msgs[key]);
}
}
}
//delay(1000);
digitalWrite(13, LOW);
}
// Convert ADC value to key number
int get_key(unsigned int input)
{
int k;
for (k = 0; k < NUM_KEYS; k++)
{
if (input < adc_key_val[k])
{
return k;
}
}
if (k >= NUM_KEYS)
k = -1; // No valid key pressed
return k;
}
Tài nguyên & tài liệu tham khảo
-
Bên ngoàiArduion Libary LCD4Bit_mod (getHub)github.com
Tập tin📁
Không có tệp nào khả dụng.