Kết nối LCD 1602 với Arduino: mô tả, chức năng, hướng dẫn, tính năng, sự cố và giải pháp

Mục lục:

Kết nối LCD 1602 với Arduino: mô tả, chức năng, hướng dẫn, tính năng, sự cố và giải pháp
Kết nối LCD 1602 với Arduino: mô tả, chức năng, hướng dẫn, tính năng, sự cố và giải pháp
Anonim

Mọi nghiệp dư về radio, sau một số công việc DIY đơn giản, đều đạt được mục tiêu xây dựng một thứ gì đó vĩ đại bằng cách sử dụng các cảm biến và nút. Rốt cuộc, việc hiển thị dữ liệu trên màn hình thú vị hơn nhiều so với màn hình cổng. Nhưng sau đó câu hỏi đặt ra: chọn màn hình nào? Và nói chung, kết nối nó như thế nào, cần những gì để kết nối? Câu trả lời cho những câu hỏi này sẽ được thảo luận trong bài viết này.

Màn hình LCD 1602 để kết nối với arduino
Màn hình LCD 1602 để kết nối với arduino

LCD 1602

Trong số rất nhiều tùy chọn giữa các màn hình, tôi muốn chọn màn hình LCD1602 dựa trên bộ điều khiển HD4478. Màn hình này có hai màu: chữ trắng trên nền xanh, chữ đen trên nền vàng. Kết nối LCD 1602 với Arduino cũng sẽ không gây ra bất kỳ sự cố nào, vì có một thư viện tích hợp sẵn và bạn không cần tải thêm bất kỳ thứ gì. Màn hình không chỉ khác nhau về giá cả mà còn khác nhau về kích thước. Đài nghiệp dư thường dùng 16x 2, tức là 2 dòng gồm 16 ký tự. Nhưng cũng có 20 x 4, trong đó có 4 dòng 20 ký tự. Kích thước và màu sắc không đóng bất kỳ vai trò nào trong việc kết nối màn hình LCD 1602 với Arduno, chúng được kết nối theo cùng một cách. Góc nhìn 35 độ, thời gian đáp ứng hiển thị 250 ms. Có thể làm việc ở nhiệt độ từ -20 đến 70 độ C. Khi làm việc, nó sử dụng 4 mA cho màn hình và 120 mA cho đèn nền.

Sơ đồ chân màn hình LCD 1602
Sơ đồ chân màn hình LCD 1602

Nó được sử dụng ở đâu?

Màn hình này không chỉ phổ biến đối với những người nghiệp dư trên đài phát thanh, mà còn giữa các nhà sản xuất lớn. Ví dụ, máy in, máy pha cà phê cũng sử dụng LCD1602. Điều này là do giá thành rẻ, màn hình này có giá 200-300 rúp trên các trang của Trung Quốc. Rất đáng để mua ở đó, vì trong các cửa hàng của chúng tôi, lợi nhuận cho màn hình này rất cao.

Kết nối với Arduino

Kết nối LCD 1602 với Arduino Nano và Uno không có gì khác biệt. Bạn có thể làm việc với màn hình ở hai chế độ: 4 bit và 8. Khi làm việc với màn hình 8 bit, cả bit thấp hơn và cao hơn đều được sử dụng và với chế độ 4 bit, chỉ những bit thấp hơn. Không có điểm đặc biệt nào khi làm việc với 8-bit, vì sẽ có thêm 4 địa chỉ liên lạc được thêm vào để kết nối, điều này là không nên, vì tốc độ sẽ không cao hơn, giới hạn cập nhật hiển thị là 10 lần mỗi giây. Nói chung, có rất nhiều dây được sử dụng để kết nối LCD 1602 với Arduino, điều này gây ra một số bất tiện, nhưng có những tấm chắn đặc biệt, nhưng sau này sẽ nhiều hơn. Ảnh cho thấy kết nối của màn hình với Arduino Uno:

Kết nối màn hình với arduino
Kết nối màn hình với arduino

Ví dụ về mã:


bao gồm //Thêm thư viện cần thiết LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup () {lcd.begin (16, 2); // Đặt kích thước màn hình lcd.setCursor (0, 0); // Đặt con trỏ ở đầu dòng 1 lcd.print ("Hello, world!"); // Hiển thị văn bản lcd. SetCursor (0, 1); // Đặt con trỏ về đầu dòng 2 lcd.print ("fb.ru"); // Xuất văn bản} void loop () {}

Mã làm gì? Trước hết, thư viện để làm việc với màn hình được kết nối. Như đã đề cập ở trên, thư viện này đã được bao gồm trong Arduino IDE và bạn không cần tải xuống và cài đặt thêm. Tiếp theo, các tiếp điểm được kết nối với các chân được xác định: RS, E, DB4, DB5, DB6, DB7, tương ứng. Sau đó, kích thước màn hình được thiết lập. Vì chúng tôi đang làm việc với phiên bản có 16 ký tự và 2 dòng, chúng tôi viết các giá trị như vậy. Chúng tôi đặt con trỏ ở đầu dòng đầu tiên và hiển thị văn bản đầu tiên Xin chào Thế giới. Tiếp theo, đưa con trỏ vào dòng thứ hai và hiển thị tên của trang web. Đó là tất cả! Kết nối LCD 1602 với Arduino Uno đã được xem xét.

I2C là gì và tại sao lại cần nó?

Như đã đề cập ở trên, việc kết nối màn hình cần rất nhiều chân cắm. Ví dụ, khi làm việc với nhiều cảm biến và màn hình LCD, 1602 địa chỉ liên lạc có thể không đủ. Thông thường, các đài nghiệp dư sử dụng phiên bản Uno hoặc Nano, nơi không có nhiều liên hệ. Sau đó người ta nghĩ ra những chiếc khiên đặc biệt. Ví dụ, I2C. Nó cho phép bạn kết nối màn hình chỉ với 4 chân. Đây là hai lần ít hơn. Mô-đun I2C được bán riêng lẻ, nơi bạn cần tự hàn nó và đã được hàn vàoMàn hình LCD 1602.

Mô-đun I2C cho màn hình LCD 1602
Mô-đun I2C cho màn hình LCD 1602

Kết nối với mô-đun I2C

Kết nối LCD 1602 với Arduino Nano với I2C chiếm ít dung lượng, chỉ có 4 chân: nối đất, nguồn và 2 đầu ra dữ liệu. Chúng tôi kết nối nguồn và nối đất với 5V và GND trên Arduino, tương ứng. Hai tiếp điểm còn lại: SCL và SDA được kết nối với bất kỳ chân analog nào. Trong ảnh, bạn có thể thấy một ví dụ về kết nối LCD 1602 với arduino bằng mô-đun I2C:

Hiển thị các kết nối bằng mô-đun I2C
Hiển thị các kết nối bằng mô-đun I2C

Mã chương trình

Nếu cần chỉ sử dụng một thư viện để làm việc với màn hình mà không có mô-đun, thì cần hai thư viện để làm việc với một mô-đun. Một trong số chúng đã có trong Arduino IDE - Wire. Một thư viện khác, LiquidCrystal I2C, cần được tải xuống và cài đặt riêng. Để cài đặt thư viện trong Arduino, nội dung của kho lưu trữ đã tải xuống phải được tải lên thư mục gốc Libraries. Ví dụ mã sử dụng I2C:


bao gồm màn hình LCD include LiquidCrystal_I2C (0x27, 16, 2); // Thiết lập hiển thị void setup () {lcd.init (); lcd.backlight (); // Bật đèn nền hiển thị lcd.print ("FB.ru"); lcd.setCursor (8, 1); lcd.print ("LCD 1602"); } void loop () {// Đặt con trỏ thành dòng thứ hai và ký tự rỗng. lcd.setCursor (0, 1); // In ra số giây kể từ khi arduino khởi động lcd.print (millis () / 1000); }

Như bạn thấy, mã gần như giống nhau.

Làm cách nào để thêm ký hiệu của riêng tôi?

Vấn đề với những màn hình này là không cóhỗ trợ cho Cyrillic và ký hiệu. Ví dụ: bạn cần tải một số ký tự vào màn hình để nó có thể phản ánh nó. Để làm điều này, màn hình cho phép bạn tạo tối đa 7 nhân vật của mình. Trình bày bảng:

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 0 0

Nếu 0 - không có gì ở đó, nếu 1 - đó là vùng bóng mờ. Trong ví dụ trên, bạn có thể thấy việc tạo nhân vật "mặt cười". Sử dụng một chương trình ví dụ trong Arduino, nó sẽ giống như sau:


include include // Bao gồm thư viện bắt buộc // Biểu tượng nụ cười bitmask byte smile [8]={B00010, B00001, B11001, B00001, B11001, B00001, B00010,}; Màn hình LCD LiquidCrystal (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup () {lcd.begin (16, 2); // Đặt kích thước màn hình lcd.createChar (1, smile); // Tạo ký tự số 1 lcd.setCursor (0, 0); // Đặt con trỏ về đầu dòng 1 lcd.print ("\ 1"); // Hiển thị mặt cười (ký tự số 1) - "\ 1"} void loop () {}

Như bạn thấy, đã được tạo rabitmask giống như bảng. Sau khi được tạo, nó có thể được xuất ra dưới dạng một biến cho màn hình. Hãy nhớ rằng chỉ có 7 ký tự có thể được lưu trữ trong bộ nhớ. Về nguyên tắc, điều này là đủ. Ví dụ: nếu bạn muốn hiển thị ký hiệu độ.

Thêm các ký tự tùy chỉnh vào màn hình LCD 1602
Thêm các ký tự tùy chỉnh vào màn hình LCD 1602

Sự cố trong đó màn hình có thể không hoạt động

Đôi khi màn hình không hoạt động. Ví dụ, nó bật, nhưng không hiển thị các ký tự. Hoặc nó hoàn toàn không bật. Trước tiên, hãy xem bạn đã kết nối đúng các số liên lạc chưa. Nếu bạn đã từng kết nối LCD 1202 với Arduino mà không có I2C thì rất dễ bị rối dây dẫn đến hiển thị hoạt động không chính xác. Bạn cũng nên đảm bảo rằng độ tương phản của màn hình được tăng lên, vì ở độ tương phản tối thiểu, bạn thậm chí không thể nhìn thấy màn hình LCD 1602 có bật hay không. Nếu điều này không giúp ích được gì, thì có lẽ vấn đề có thể nằm ở việc hàn các tiếp điểm, đây là khi sử dụng mô-đun I2C. Ngoài ra, một lý do phổ biến khiến màn hình có thể không hoạt động là cài đặt địa chỉ I2C không chính xác. Thực tế là có nhiều nhà sản xuất, và họ có thể đặt một địa chỉ khác nhau, bạn cần sửa lại tại đây:


Màn hình LCD LiquidCrystal_I2C (0x27, 16, 2);

Trong ngoặc, bạn có thể thấy hai giá trị, 0x27 và 16, 2 (16, 2 là kích thước hiển thị và 0x27 chỉ là địa chỉ I2C). Thay vì các giá trị này, bạn có thể thử đặt 0x37 hoặc 0x3F. Chà, một lý do khác đơn giản là màn hình LCD 1602. Bị lỗi vì hầu hết mọi thứ cho Arduino đều được sản xuất tại Trung Quốc, bạn không thể chắc chắn 100% rằng sản phẩm đã muasản phẩm không bị lỗi.

LCD 1602 ưu và nhược điểm

Hãy cùng xem xét ưu và nhược điểm của LCD 1602.

Ưu

  • Giá. Mô-đun này có thể được mua với giá rất phải chăng ở các cửa hàng Trung Quốc. Giá là 200-300 rúp. Đôi khi còn được bán kèm theo mô-đun I2C.
  • Dễ dàng kết nối. Có lẽ không ai kết nối LCD 1602 mà không có I2C những ngày này. Và với mô-đun này, kết nối chỉ cần 4 chân, sẽ không có "mạng" dây.
  • Lập trình. Nhờ các thư viện được tạo sẵn, làm việc với mô-đun này rất dễ dàng, tất cả các chức năng đã được đăng ký. Và nếu bạn cần thêm nhân vật của mình, chỉ mất vài phút.

Nhược điểm

Trong suốt thời gian sử dụng của hàng nghìn tài tử đài, không xác định được điểm hạn chế lớn nào, chỉ có trường hợp mua kết hôn, vì chủ yếu sử dụng tùy chọn hiển thị của Trung Quốc

Bài viết này thảo luận về cách kết nối màn hình LCD 1602 với Arduino và cũng trình bày các chương trình mẫu để làm việc với màn hình này. Nó thực sự là một trong những cái hay nhất trong danh mục của nó, không chỉ có hàng nghìn đài nghiệp dư chọn nó cho các dự án của họ!

Đề xuất: