Cách giao tiếp Keypad với màn hình LCD trong Arduino

Trong bài viết này mình sẽ hướng dẫn các bạn cách giao tiếp Keypad với màn hình LCD trong Arduino. Trong thực tế được áp dụng rất nhiều như các ổ khóa cửa, tủ thông mình, máy tính, cây ATM, … .

Qua bài viết này các bạn có thể học được cách truyền dữ liệu giữa hai thiết bị khác nhau. Khi đã nắm vững thì việc thực hiện kết nối giữa các thiết bị với nhau rất dễ dàng.

Các thiết bị cần thiết để Keypad giao tiếp với LCD

Để có thể giao tiếp giữa Keypad và màn hình LCD ta cần thêm một số thiết bị khác như sau:

  • 1 x Arduino Uno.
  • 1 x USB 2.0 loại A / B.
  • 1 x LCD I2C 16×2.
  • 1 x Keypad 4×4.
  • 1 x Dây điện nối.

arduino 03 pngarduino 02 png

Ngoài ra các bạn có thể thay thế màn hình LCD I2C 16×2 và Keypad 4×4 bằng loại mà bạn mong muốn. Ở đây mình sử dụng hai loại này để giao tiếp với nhau.

Bài viết này được đăng tại [kiso.vn]

Sơ đồ mạch điện để Keypad giao tiếp với LCD trong Arduino

Dưới đây là sơ đồ mạch điện để Keypad giao tiếp với màn hình LCD trong Arduino.

arduino 01 png

Ta lần lược nối các thiết bị màn hình LCD I2C và Keypad với Arduino. Trên màn hình LCD I2C cho ra 4 chân bao gồm chân GND, VCC và 2 chân tín hiệu SDA, SCL.

Màn hình LCD I2C 16×2.

  • Nối chân GND của LCD I2C với chân GND của Arduino.
  • Nối chân VCC của LCD I2C với chân 5V của Arduino.
  • Nối hai chân tín hiệu SDA, SCL lần lượt với chân A4, A5 của Arduino.

Keypad 4×4.

  • Nối lần lượt các chân điều khiển của Keypad 4×4 vào các chân 2, 3, 4, 5, 6, 7, 8, 9 của Arduino.

Cách giao tiếp Keypad với màn hình LCD trong Arduino

Để có thể sử dụng hai thiết bị Keypad và màn hình LCD ta cần thêm hai thiết bị này vào Arduino. Đầu tiên ta vào Tool -> Manager Libraries.

arduino 04 png

Tiếp đến ta tìm kiếm hai thiết bị này và cài đặt nó.

Keypad 4×4.

arduino 05 png

LCD I2C 16×2.

arduino 06 png

Dưới đây mình có đoạn chương trình xử lý giúp Keypad có thể giao tiếp được với LCD. Khi người dùng nhấn vào bàn phím thì nội dung sẽ được hiển thị lên màn hình LCD.

//khai báo thư viện keypad và liquidCrystal_I2c để sử dụng các hàm hỗ trợ
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
//khai báo số hàng số cột của keypad
const int ROW_NUM    = 4; 
const int COLUMN_NUM = 4;
//khai báo các ký tự trả về từ keypad
char keys[ROW_NUM][COLUMN_NUM] = {
  {'1','2','3', 'A'},
  {'4','5','6', 'B'},
  {'7','8','9', 'C'},
  {'*','0','#', 'D'}
};
//khai báo chân điều khiển keypad trên arduino
byte pin_rows[ROW_NUM] = {9, 8, 7, 6};
byte pin_column[COLUMN_NUM] = {5, 4, 3, 2};
//khai báo sử dụng màn hình lcd với 16 cột và hai hàng
Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM );
LiquidCrystal_I2C lcd(0x27, 16, 2);
//khai báo biến để đếm số ký tự trên màn hình lcd
int cursorColumn = 0;

void setup(){
  lcd.init();
  lcd.backlight();
}

void loop(){
  //khai báo và gán giá trị nhận được từ keypad cho biến key
  char key = keypad.getKey();
  //nếu tồn tại ký tự key thì hiển thị nó lên màn hình LCD
  if (key) {
    lcd.setCursor(cursorColumn, 0);
    lcd.print(key); 
    //sau khi hiển thị thì tăng số lượng ký tự lên 1
    cursorColumn++;                
    //nếu số lượng ký tự quá 16 thì xóa đi và reset biến cursorColumn
    if(cursorColumn == 16) { 
      lcd.clear();
      cursorColumn = 0;
    }
  }
}

Kết quả: Khi các bạn đã kết nối các thiết bị và tiến hành nạp code cho Arduino. Bây giờ chỉ cần kiểm tra bằng cách nhấn các phím xem nó có hiển thị lên màn hình hay không.

Kết luận

Như vậy là chúng ta đã tìm hiểu về cách giao tiếp giữa Keypad với màn hình LCD I2C. Khi các bạn đã biết cách kết nối giữa các thiết bị thì có thể tự mua cho mình để khám phá nhé. Bài tiếp theo mình sẽ hướng dẫn các bạn cách điều khiển Touch Sensor trong Arduino.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *