Raspberry Pi Keypad LCD

Hướng dẫn này sẽ chỉ bạn cách sử dụng Raspberry Pi để hiển thị thông tin nhập từ keypad trên màn hình LCD.

Phần Cứng Cần Thiết

1×Raspberry Pi 5
1×LCD I2C
1×Bàn phím ma trận 3x4 and 4x4 Kit
1×breadboard (bo mạch thí nghiệm)
1×dây jumper (dây cắm)
1×(Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi
1×(Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit
1×(Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following kits:

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

Về Keypad và LCD

Nếu bạn chưa quen thuộc với keypad và LCD (bao gồm sơ đồ chân, chức năng, lập trình, v.v.), các hướng dẫn sau có thể giúp bạn:

Sơ Đồ Đấu Nối

sơ đồ đấu nối Raspberry Pi bàn phím ma trận lcd

This image is created using Fritzing. Click to enlarge image

Code Raspberry Pi

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc hệ điều hành tương thích khác cho Raspberry Pi.
  • Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ như PC của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối internet nếu cần cài đặt một số thư viện.
  • Nếu đây là lần đầu bạn sử dụng Raspberry Pi, hãy xem Raspberry Pi - Cài Đặt Phần Mềm
  • Kết nối PC của bạn với Raspberry Pi qua SSH bằng SSH client có sẵn trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
  • Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, cài đặt bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
pip install lcddriver
  • Tạo file script Python keypad_lcd.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/tutorials/raspberry-pi/raspberry-pi-keypad-lcd import RPi.GPIO as GPIO from lcddriver import lcd from time import sleep # GPIO pins for the keypad rows and columns ROW_PINS = [17, 27, 22, 24] COL_PINS = [25, 8, 7] # I2C address 0x27, 16 columns, 2 rows LCD = lcd() # Mapping of keys on the keypad keys = [ ['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['*', '0', '#'] ] def setup_gpio(): GPIO.setmode(GPIO.BCM) for row_pin in ROW_PINS: GPIO.setup(row_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) for col_pin in COL_PINS: GPIO.setup(col_pin, GPIO.OUT) def read_key(): for col_num, col_pin in enumerate(COL_PINS): GPIO.output(col_pin, GPIO.LOW) for row_num, row_pin in enumerate(ROW_PINS): if GPIO.input(row_pin) == GPIO.LOW: return keys[row_num][col_num] GPIO.output(col_pin, GPIO.HIGH) return None def display_key(key): LCD.lcd_clear() LCD.lcd_display_string(f"Key Pressed:", 1) LCD.lcd_display_string(f"{key}", 2) try: setup_gpio() while True: key = read_key() if key is not None: display_key(key) sleep(0.1) # Adjust the sleep duration as needed except KeyboardInterrupt: pass finally: GPIO.cleanup() LCD.lcd_clear()
  • Lưu file và chạy script Python bằng cách thực hiện lệnh sau trong terminal:
python3 keypad_lcd.py

Script chạy trong vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.

  • Nhấn các phím nhất định trên keypad
  • Kiểm tra kết quả trên màn hình LCD

Nếu màn hình LCD không hiển thị gì, hãy xem Khắc phục sự cố trên LCD I2C để được hỗ trợ.

Giải Thích Code

Hãy xem giải thích từng dòng được chứa trong các comment của source code!

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.