Hướng dẫn lập trình hiển thị LCD (16x2) trên Arduino Uno

I. Giới thiệu:


Hôm nay, các bạn sẽ tìm cách điều khiển màn hình LCD bằng Arduino mà không sử dụng module I2C LCD.


Bạn sẽ biết được:

- Pinout của một số chân quan trọng với module LCD
- Điều khiển nó bằng Arduino UNO R3

II. Phần cứng:


III. Giới thiệu sơ lược về LCD và thư viện điều khiển LCD của Arduino:


1. Thư viện điều khiển LCD của Arduino:


Thư viện LiquidCrystal là thư viện điều khiển LCD trên Arduino, nó được xây dựng để cho các bạn có thể lập trình điều khiển các module LCD ô vuông một cách nhanh chóng mà không cần phải lập trình nhiều. Thư viện này được viết để phù hợp với con IC HD44780 (con điều khiển module LCD).


 2. LCD pinout - sơ đồ chân của LCD:



1.VSS: tương đương với GND - cực âm
2.VDD: tương đương với VCC - cực dương (5V)
3.Constrast Voltage (Vo): điều khiển độ sáng màn hình
4.Register Select (RS): điều khiển địa chỉ nào sẽ được ghi dữ liệu
5.Read/Write (RW): Bạn sẽ đọc (read mode) ha6.Enable pin: Cho phép ghi vào LCD
7.D0 - D7: 8 chân dư liệu, mỗi chân sẽ có giá trị HIGH hoặc LOW nếu bạn đang ở chế độ đọc (read mode) và nó sẽ nhận giá trị HIGH hoặc LOW nếu đang ở chế độ ghi (write mode)
8.Backlight (Backlight Anode (+) và Backlight Cathode (-)): Tắt bật đèn màn hình LCD.

3. Cách dùng thư viện với LCD:


Module LCD có thể được điều khiển ở chế độ: 4-bit điều khiển và 8-bit điều khiển. Với cách dùng ở chế độ 4-bit, bạn cần 7 chân ở Arduino, và nếu muốn dùng hết khả năng của LCD thì bạn cần 7 + 4 = 11 chân ở Arduino (không nên dùng). Các hàm trong thư viện LiquidCrystal của Arudino  ở chế độ 4-bit thì mọi thứ đều hoạt động tốt cả. Vì vậy, mình sẽ mắc mạch ở chế độ 4-bit điều khiển.


IV. Lắp mạch:



V. Code mẫu:


//Khai báo thư viện LiquitCrystal


#include

//Khởi tạo với các chân

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {

  //Thông báo đây là LCD 1602

  lcd.begin(16, 2);

  //In ra màn hình lcd dòng chữ Chao cac ban

  lcd.print("Chao cac ban!");

}

void loop() {

  // đặt con trỏ vào cột 0, dòng 1

  // Lưu ý: dòng 1 là dòng thứ 2, lòng 0 là dòng thứ 1. Tức là, nó đếm từ 0 chứ không phải từ 1

  lcd.setCursor(0, 1);

  // In ra dòng chữ

  lcd.print("Eclub-tcu.com");

}

 

enlightenedThật là đơn giản phải không nào. 


Chúc các bạn thành công! 

Video hướng dẫn mô phỏng bằng proteus:



Thanh Hải

Số lượt xem bài viết: 540



Comment
Name
Message
Coppy right ©: 2016 by Đỗ Ngọc Tuấn-TCU
Email: ngoctuansqtt@gmail.com