Mục lục:

Cuộn dòng LCD đơn: 4 bước (có hình ảnh)
Cuộn dòng LCD đơn: 4 bước (có hình ảnh)

Video: Cuộn dòng LCD đơn: 4 bước (có hình ảnh)

Video: Cuộn dòng LCD đơn: 4 bước (có hình ảnh)
Video: Giải thích hoạt động LCD và giới thiệu module LCD 16x2 2024, Tháng mười một
Anonim
Image
Image

Thư viện tinh thể lỏng có hai chức năng hữu ích scrollDisplayLeft () và scrollDisplayRight (). Các chức năng này cuộn toàn bộ màn hình. Đó là, họ cuộn cả hai dòng trên LCD 1602 và cả bốn dòng trên LCD 2004. Những gì chúng ta thường cần là khả năng cuộn một dòng trên các màn hình này hơn là cuộn toàn bộ màn hình.

Có thể giảng dạy này cung cấp hai chức năng bổ sung, scrollInFromRight (dòng để hiển thị văn bản trên, chuỗi được cuộn) và scrollInFromLeft (dòng để hiển thị văn bản trên, chuỗi được cuộn). Hai chức năng này cuộn các dòng vào màn hình LCD kết hợp với hai chức năng, scrollLineRight (dòng để hiển thị văn bản trên, chuỗi được cuộn) và scrollLineLeft (dòng để hiển thị văn bản, chuỗi được cuộn) từ Có thể hướng dẫn trước đó của tôi, đã trình bày chức năng cuộn các dòng ra khỏi màn hình, cung cấp cho chúng tôi một số cách mạnh mẽ để kiểm soát cách văn bản có thể được trình bày trên hoặc xóa khỏi màn hình LCD.

Bước 1: Những gì cần thiết

Hookup
Hookup

- Màn hình LCD độc lập 1602 hoặc 2004 hoặc tấm chắn LCD

- Xem ghi chú bên dưới về việc sử dụng màn hình LCD 2004

- Arduino UNO R3 hoặc bản sao

- Cáp USB để kết nối Arduino với máy tính

- Một nửa kích thước, 400 điểm buộc, breadboard

- Arduino IDE

- Nền tảng thử nghiệm (tùy chọn, nhưng hữu ích)

Các mục yêu cầu là màn hình LCD 1602 hoặc 2004 [nếu sử dụng 2004, nó sẽ hoạt động mà không có vấn đề gì khi cuộn từ bên phải bằng cách thay đổi hàm lcd.begin () để phản ánh rằng bạn hiện đang sử dụng dòng 20 ký tự x 4 trưng bày. [Để cuộn vào từ bên trái bằng màn hình 2004, cần phải viết lại mã của hàm s crollInFromLeft ()]. Ngoài màn hình LCD, bạn sẽ cần Arduino UNO hoặc bản sao, Arduino IDE và cáp USB để kết nối Arduino với máy tính.

Một tấm chắn LCD có thể được sử dụng thay cho màn hình LCD độc lập được hiển thị ở đây. Nếu đúng như vậy, thì các chỉ định chân cho màn hình LCD trong hình bên dưới sẽ cần được thay đổi.

- Đối với màn hình LCD 1602 độc lập, tôi đã sử dụng các phép gán chân sau trong bản phác thảo của mình:

// LiquidCrystal (rs, enable, d4, d5, d6, d7)

Màn hình LCD LiquidCrystal (12, 11, 5, 4, 3, 2);

và bao gồm thư viện Tinh thể lỏng LiquidCrystal.h.

- Đối với tấm chắn LCD, tôi sử dụng các chỉ định pin sau trong bản phác thảo của mình và cũng bao gồm thư viện Tinh thể lỏng LiquidCrystal.h.

// LiquidCrystal (rs, enable, d4, d5, d6, d7)

Màn hình LCD LiquidCrystal (8, 13, 9, 4, 5, 6, 7);

Một trong hai tuyến sẽ chạy mã ở đây, tức là một tấm chắn LCD hoặc một màn hình LCD độc lập. Màn hình LCD độc lập 1602 đã được sử dụng trong Thiết bị hướng dẫn này, nhưng như đã lưu ý, tấm chắn 1602 cũng có thể được sử dụng nếu tính đến các chỉ định chân khác nhau.

Tôi đã sử dụng một “nền tảng thử nghiệm” để kết nối Arduino UNO với một breadboard, 400 điểm kết nối, kích thước bằng một nửa. (Xem Tài liệu hướng dẫn trước đây của tôi, "Nền tảng thử nghiệm cho Arduino UNO R3, Cách chuẩn bị để sử dụng"). Tuy nhiên, một nền tảng thử nghiệm là không cần thiết, mặc dù đối với tôi, nó giúp việc kết nối màn hình LCD với UNO dễ dàng và nhanh chóng hơn nhiều.

Các nhiệm vụ tôi đã sử dụng để kết nối màn hình LCD với UNO có thể được xem ở trên.

Bước 2: Kết nối

Màn hình LCD được cắm vào breadboard và sau đó các dây nối được kết nối từ breadboard đến các chân thích hợp trên Arduino (xem bước 2 nếu bạn có bất kỳ câu hỏi nào về các kết nối tôi đã sử dụng).

Tôi thích một màn hình LCD độc lập cho dự án này hơn là một tấm chắn vì nó khiến tôi hài lòng hơn và cho phép tôi dễ dàng xem những chân nào có sẵn. Nó cũng cho phép tôi sử dụng một chiết áp có núm vặn, thay vì chiết áp của tấm chắn phải được điều chỉnh bằng tuốc nơ vít.

Màn hình LCD độc lập yêu cầu sử dụng một chiết áp 10k ohm riêng biệt. Như đã lưu ý ở trên, tôi đã sử dụng một cái có núm xoay có cần gạt nước của nó được kết nối với chân LCD thứ ba (đếm từ bên phải với các chân LCD hướng về phía bạn). Chiết áp được sử dụng để kiểm soát độ tương phản của màn hình LCD. Các kết nối giống nhau đối với 1602 và 2004. Tuy nhiên, câu lệnh lcd.begin (16, 2) cần được thay đổi trong bản phác thảo thành lcd.begin (20, 4) để cho thấy rằng màn hình LCD của chúng tôi đã thay đổi từ 16 ký tự theo hai dòng hiển thị thành 20 ký tự x bốn dòng một.

Xem qua các bức ảnh đính kèm cho thấy hookup tôi đã sử dụng, bao gồm cả nền tảng thử nghiệm và chiết áp 10k.

Bước 3: Phác thảo

Bản phác thảo
Bản phác thảo
Bản phác thảo
Bản phác thảo
Bản phác thảo
Bản phác thảo

Chỉ cần nhập bản phác thảo đính kèm vào Arduino IDE. Xin lưu ý rằng trang web Có thể hướng dẫn thường xóa tất cả các dấu hiệu lớn hơn và nhỏ hơn và văn bản giữa chúng. Do đó, hãy chắc chắn và bao gồm văn bản, #include LiquidCrystal.h và bao gồm các từ LiquidCrystal.h bên trong lớn hơn và nhỏ hơn ký hiệu.

// Phác thảo để cuộn các ký tự lên màn hình LCD

#include // Xem ghi chú bằng văn bản về những thứ cần thiết ở đây, tức là LiquidCrystal.h được đính kèm bên trong

// lớn hơn và nhỏ hơn các ký hiệu

// Trang web này thường xóa các ký hiệu lớn hơn và nhỏ hơn và văn bản giữa chúng

// LiquidCrystal (rs, enable, d4, d5, d6, d7)

Màn hình LCD LiquidCrystal (12, 11, 5, 4, 3, 2);

// Khai báo lcd dưới dạng Đối tượng LiquidCrystal

int i = 0;

int j = 0;

int k = 0;

int delayTime2 = 350; // Độ trễ giữa các ca làm việc

void scrollInFromRight (int line, char str1 ) {

// Do R. Jordan Kreindler viết tháng 6 năm 2016

i = strlen (str1);

cho (j = 16; j> = 0; j--) {

lcd.setCursor (0, dòng);

for (k = 0; k <= 15; k ++) {

lcd.print (""); // Sạch hàng

}

lcd.setCursor (j, dòng);

lcd.print (str1);

trì hoãn (delayTime2);

}

}

void scrollInFromLeft (int line, char str1 ) {

// Do R. Jordan Kreindler viết tháng 6 năm 2016

i = 40 - strlen (str1);

line = line - 1;

for (j = i; j <= i + 16; j ++) {

for (k = 0; k <= 15; k ++) {

lcd.print (""); // Sạch hàng

}

lcd.setCursor (j, dòng);

lcd.print (str1);

trì hoãn (delayTime2);

}

}

void setup () {

Serial.begin (9600);

Serial.println ("Đang bắt đầu kiểm tra…");

lcd.begin (16, 2);

lcd.clear ();

lcd.print ("Chỉ Thử nghiệm");

}

void loop () {

lcd.clear ();

scrollInFromRight (0, "Line1 Từ Phải");

scrollInFromRight (1, "Line2 Từ Phải");

lcd.clear ();

scrollInFromLeft (0, "Dòng1 Từ Trái.");

scrollInFromLeft (1, "Line2 Từ Trái.");

lcd.clear ();

scrollInFromRight (0, "Line1 Từ Phải");

scrollInFromLeft (1, "Line2 Từ Trái.");

lcd.clear ();

}

Hai chức năng: scrollInFromRight (dòng để hiển thị văn bản trên, chuỗi được cuộn) và scrollInFromLeft (dòng để hiển thị văn bản trên, chuỗi được cuộn) có thể được chuyển vào bản phác thảo của bạn để điều khiển các dòng được cuộn trên màn hình LCD. Các chức năng này cung cấp một cách thanh lịch để di chuyển văn bản mới lên màn hình.

Khi được kết hợp với hai chức năng trong bản phác thảo có trong Hướng dẫn “Cuộn một dòng LCD đơn lẻ sang trái hoặc phải, Cách thực hiện”, bốn chức năng này cung cấp những cách thanh lịch để cuộn văn bản lên và tắt màn hình LCD. Các chức năng này cho phép bạn cuộn văn bản từng dòng một và không yêu cầu cuộn toàn bộ màn hình như các chức năng scrollDisplayLeft () và scrollDisplayRight ().

Khả năng cuộn này cho phép chúng tôi trình bày các dòng dài hơn mà màn hình thường có khả năng hiển thị. Nghĩa là, đối với màn hình 1602, chúng tôi không bị giới hạn chỉ 16 ký tự trên mỗi dòng (mặc dù chỉ có 16 ký tự hiển thị cùng một lúc) và đối với năm 2004, chúng tôi không bị giới hạn ở 20 ký tự trên mỗi dòng.

Ngoài ra, bạn có thể muốn điều chỉnh thời gian hiển thị giữa các lần cuộn để phù hợp với nhu cầu của mình.

Bước 4: Sau đó

Thats tất cả để có nó. Các chức năng này và cả hai chức năng từ Có thể hướng dẫn trước đây của tôi có thể được thêm vào bất kỳ bản phác thảo nào bạn có sử dụng màn hình LCD và hiển thị văn bản. Như đã lưu ý, khả năng sử dụng các dòng dài hơn là một lợi ích nhất định có thể có được thông qua việc sử dụng tính năng cuộn.

Nếu bạn muốn liên hệ với tôi nếu bạn có bất kỳ câu hỏi nào hoặc để biết thêm thông tin, hoặc để mở rộng kiến thức của tôi trong lĩnh vực được trình bày, tôi có thể liên hệ với tôi tại [email protected]. (vui lòng thay thế chữ 'i' thứ hai bằng chữ 'e' để liên hệ với tôi.

Đề xuất: