LCD1602 Keypad Shield được phát triển và tương thích với các board Arduino, nhằm tạo một giao diện người dùng thân thiện, cho phép người dùng đơn giản hóa quá trình điều chỉnh và làm mạch. Module này bao gồm màn hình LCD 16×2 ký tự để hiển thị chữ trắng đèn nền xanh dương và bàn phím có 6 phím — chọn, lên, phải, xuống, trái và reset.
Keypad LCD1602 được thiết kế nhỏ gọn, cắm vừa vặn lên bo Arduino, các tài liệu và code mẫu rõ ràng giúp bạn tiếp cận và sử dụng một cách nhanh chóng và dễ dàng. Đặt biệt shiled được thiết kế dùng chỉ 1 ngõ vào analog để đọc thông tin của tất cả 5 nút nhấn, việc này giúp tiết kiệm rất nhiều, nhất là trong điều kiện tài nguyên hạn hẹp của Arduino.
THÔNG SỐ KỸ THUẬT
- LCD1602 Keypad Shield hoạt động ở điện áp 5V.
- Bao gồm LCD 2×16 và 6 nút nhấn.
- Sử dụng chân 4,5,6,7,8,9,10 và chân A0 của Arduino để giao tiếp với LCD.
- Không cần sử dụng chân 10 sau khi LCD đã được kết nối.
- Đèn nền xanh dương với chứ màu trắng.
- Sử dụng thư viện LCD 4bit.
- Điều chỉnh độ sáng đèn nền qua biến trở.
Sơ đồ chân LCD1602 Keypad Shield
Sơ đồ mạch:
Chân | Chức năng |
Digital4 | DB4 |
Digital5 | DB5 |
Digital6 | DB6 |
Digital7 | DB7 |
Digital8 | RS (data or signal display selection) |
Digital9 | Enable |
Analog0 | Buttons (select, up, right, down, left) |
Sơ đồ kết nối với arduino uno:
—————————-CODE THAM KHẢO—————————–
Tutorial and example code : http://www.dfrobot.com/wiki/index.php/LCD_KeyPad_Shield_For_Arduino_SKU:_DFR0009
Thư viện LiquidCrystal.h : https://github.com/adafruit/STEMMA_LiquidCrystal
Thư viện DFR_LCD_Keypad.h : https://github.com/andygock/DFR_LCD_Keypad
#include <LiquidCrystal.h> #include <DFR_LCD_Keypad.h> LiquidCrystal lcd(8,9,4,5,6,7); DFR_LCD_Keypad keypad(A0, &lcd); int led=13; int last_key, key; void setup() { lcd.begin(16,2); lcd.setCursor(0,0); lcd.print("PRESS KEYS NOW"); pinMode(led, OUTPUT); delay(1000); lcd.clear(); } void loop() { last_key = keypad.get_last_key(); key = keypad.read_key(); if (key != last_key) { lcd.clear(); lcd.setCursor(0,0); switch (key) { case KEY_RIGHT: lcd.print("RIGHT"); break; case KEY_UP: lcd.print("UP"); break; case KEY_DOWN: lcd.print("DOWN"); break; case KEY_LEFT: lcd.print("LEFT"); break; case KEY_SELECT: lcd.print("SELECT"); digitalWrite(led, HIGH); break; case KEY_NONE: default: lcd.print("NO KEYS PRESSED"); lcd.setCursor(0,1); lcd.print("PRESS KEYS NOW"); digitalWrite(led, LOW); break; } } delay(10); }