Mục lục:

LCD COG cho Arduino Nano: 3 bước
LCD COG cho Arduino Nano: 3 bước

Video: LCD COG cho Arduino Nano: 3 bước

Video: LCD COG cho Arduino Nano: 3 bước
Video: Cách cài đặt bo mạch LGT8F328P cho Arduino IDE | Arduino nano LGT8F328P | Arduino nano 2024, Tháng bảy
Anonim
LCD COG cho Arduino Nano
LCD COG cho Arduino Nano

Tài liệu hướng dẫn này mô tả cách sử dụng màn hình LCD COG với Arduino Nano.

Màn hình LCD COG rẻ nhưng hơi khó giao diện. (COG là viết tắt của "Chip On Glass".) Cái tôi đang sử dụng chứa chip điều khiển UC1701. Nó chỉ yêu cầu 4 chân của Arduino: SPI-clock, SPI-data, chip-select và command / data.

UC1701 được điều khiển bởi bus SPI và chạy ở 3.3V.

Ở đây tôi giải thích cách sử dụng nó với Arduino Nano. Nó cũng sẽ hoạt động với Arduino Mini hoặc Uno - Tôi sẽ thử ngay.

Đây là dự án Arduino đầu tiên của tôi và tôi đã không viết C trong nhiều thập kỷ, vì vậy nếu tôi mắc phải bất kỳ lỗi rõ ràng nào, vui lòng cho tôi biết.

Bước 1: Xây dựng phần cứng

Xây dựng phần cứng
Xây dựng phần cứng
Xây dựng phần cứng
Xây dựng phần cứng
Xây dựng phần cứng
Xây dựng phần cứng

Mua màn hình COG LCD có chip UC1701. Nó nên sử dụng bus SPI chứ không phải là một giao diện song song. Nó sẽ có khoảng 14 chân cắm sẽ được gắn nhãn với những cái tên như được liệt kê bên dưới. (Bạn không muốn có một giao diện song song với nhiều chân hơn có nhãn D0, D1, D2…)

Cái tôi đã mua là: https://www.ebay.co.uk/itm/132138390168 Hoặc bạn có thể tìm kiếm "12864 LCD COG" trên eBay.

Chọn một cái có đuôi khá rộng với các chân cách nhau 1,27mm - các chân tốt hơn sẽ khó hàn. Đảm bảo rằng nó có chip UC1701. Hãy để ý xem trong hình thứ sáu trên trang ebay có ghi "CONNECTOR: COG / UC1701".

Màn hình hiển thị trong suốt và khó có thể biết được đâu là mặt trước và mặt sau. Hãy nghiên cứu kỹ những bức tranh của tôi. Chú ý vị trí của các chân 1 và 14 - chúng được đánh dấu ở phần đuôi.

Đuôi linh hoạt khá dễ hàn nhưng nó cần có bộ chuyển đổi để bạn có thể cắm vào breadboard. Tôi đã mua: https://www.ebay.co.uk/itm/132166865767 Hoặc bạn có thể tìm kiếm trên eBay cho "Bộ chuyển đổi Smd SSOP28 DIP28".

Bộ điều hợp sử dụng chip SOP 28 chân ở một bên hoặc chip SSOP 28 chân ở phía bên kia. Chip SOP có khoảng cách chân là 0,05 (1,27mm) giống như phần đuôi của màn hình LCD.

Bạn cũng sẽ cần một số chân tiêu đề. Bất cứ khi nào tôi mua Arduino hoặc mô-đun khác, nó đi kèm với nhiều chân cắm tiêu đề hơn mức cần thiết, vì vậy bạn có thể đã có một số. Nếu không, hãy tìm kiếm "chân tiêu đề 2,54mm" trên eBay.

Hàn 14 chân cắm đầu cắm vào bộ điều hợp. Đừng đẩy hết chúng - sẽ đẹp hơn nếu mặt sau của bộ chuyển đổi bằng phẳng. Đặt nó bằng phẳng trên băng ghế của bạn để các ghim không bị đẩy quá xa vào các lỗ. Đảm bảo các chân cắm trên mặt SOP của bo mạch (tức là chip lớn hơn).

Các miếng đệm của đuôi nằm trong một loại cửa sổ. Thiếc cả hai mặt của chúng bằng thuốc hàn. Thiếc các miếng đệm của bộ chuyển đổi. Giữ phần đuôi của bộ chuyển đổi tại chỗ, sau đó chạm vào từng miếng đệm bằng mỏ hàn (bạn sẽ cần một đầu khá nhỏ).

Buộc một số sợi chỉ qua các lỗ trên bộ chuyển đổi để hoạt động như giảm căng thẳng. (Tôi đã sử dụng "dây biến áp").

Nếu bạn hàn không đúng cách, đừng cố làm mất màu phần đuôi. Lần lượt lấy các ghim ra và di chuyển chúng sang mặt bên kia của bảng. (Vâng, tôi đã mắc lỗi đó và hàn lại phần đuôi, đó là lý do tại sao nó hơi lộn xộn trong bức ảnh.)

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

Kết nối với Arduino
Kết nối với Arduino
Kết nối với Arduino
Kết nối với Arduino

Phần này giải thích cách kết nối với Arduino Nano. Nó sẽ rất giống với Mini hoặc Uno nhưng tôi chưa thử.

Nghiên cứu sơ đồ mạch điện.

Arduino Nano được kết nối với cổng USB chạy ở 5V. Màn hình LCD chạy ở 3.3V. Vì vậy bạn cần cấp nguồn cho LCD từ chân 3V3 của Nano và giảm điện áp trên mỗi chân điều khiển từ 5V xuống 3,3V.

Sơ đồ chân của màn hình LCD là:

  • 1 CS
  • 2 RST
  • 3 CD
  • 4
  • 5 CLK
  • 6 SDA
  • 7 3V3
  • 8 0V Gnd
  • 9 VB0 +
  • 10 VB0-
  • 11
  • 12
  • 13
  • 14

CS là Chip-Select. Nó được kéo xuống thấp để chọn (kích hoạt) chip UC1701. (CS có thể được gọi là CS0 hoặc En hoặc tương tự.)

RST đang được Đặt lại. Nó được kéo xuống thấp để đặt lại chip. (RST có thể được gọi là Đặt lại.)

CD là lệnh / dữ liệu. Nó được kéo xuống mức thấp khi gửi lệnh tới chip qua SPI. Nó cao khi gửi dữ liệu. (CD có thể được gọi là A0.)

CLK và SDA là chân bus SPI. (SDA có thể được gọi là SPI-Data. CLK có thể là SCL hoặc SPI-Clock.)

VB0 + và VB0- được sử dụng bởi máy bơm điện tích bên trong của UC1701. Máy bơm sạc tạo ra các điện áp lẻ cần thiết cho màn hình LCD. Nối một tụ điện 100n giữa VB0 + và VB0-. Tài liệu UC1701 đề xuất 2uF nhưng tôi không thể thấy sự khác biệt với màn hình LCD cụ thể này.

Nếu màn hình LCD của bạn có chân VB1 + và VB1-, cũng kết nối một tụ điện 100n giữa chúng. (Nếu màn hình LCD của bạn có chân VLCD, bạn có thể thử kết nối tụ điện 100n giữa VLCD và Gnd. Nó không có gì khác biệt với màn hình LCD của tôi.)

Kết nối LCD với Nano như sau:

  • 1 CS = D10 *
  • 2 RST = D6 *
  • 3 CD = D7 *
  • 5 CLK = D13 *
  • 6 SDA = D11 *
  • 7 3V3 = 3V3
  • 8 0V = Gnd

("*" có nghĩa là sử dụng bộ chia tiềm năng để giảm điện áp. Nếu Arduino đang chạy ở 3V3 từ nguồn cung cấp độc lập, bạn sẽ không cần điện trở.)

3.3V được Nano đầu ra và có thể cung cấp đủ dòng điện cho màn hình LCD. (Màn hình vẽ khoảng 250uA.)

5V cũng được đầu ra bởi Nano và có thể được sử dụng để cấp nguồn cho đèn nền. Giới hạn dòng điện cho đèn nền bằng điện trở 100ohm.

Nếu bạn đang thiếu chân trên Nano, bạn có thể kết nối RST với 3V3 - sau đó bạn có thể sử dụng D6 cho việc khác. U1701 có thể được đặt lại trong phần mềm bằng một lệnh trên SPI. Tôi chưa bao giờ gặp bất kỳ sự cố nào với điều đó nhưng nếu bạn đang sử dụng mạch của riêng mình trong một môi trường ồn ào, có thể tốt hơn là sử dụng thiết lập lại phần cứng.

Bước 3: Phần mềm

Phần mềm
Phần mềm

Về lý thuyết, bạn có thể lái UC1701 từ thư viện U8g2 (hoặc Ucglib hoặc các thư viện khác có sẵn). Tôi đã đấu tranh nhiều ngày để làm cho nó hoạt động và thất bại. Thư viện U8g2 là một con quái vật vì nó có thể điều khiển nhiều loại chip khác nhau và rất khó để làm theo mã. Vì vậy, tôi đã từ bỏ và viết thư viện nhỏ hơn của riêng mình. Nó chiếm ít không gian hơn trong Arduino (khoảng 3400 byte cộng với phông chữ).

Bạn có thể tải xuống thư viện của tôi từ đây (nút Tải xuống trên trang này). Một bản phác thảo mẫu và một hướng dẫn sử dụng được bao gồm. Trang web https://www.arduino.cc/en/Guide/Libraries mô tả cách nhập thư viện; chuyển đến phần "Nhập Thư viện.zip".

Khởi động màn hình LCD với

UC1701Begin ();

UC1701Begin có thể nhận các tham số để thay đổi chân hoặc bỏ qua chân RST. Thư viện chỉ sử dụng SPI phần cứng (SPI phần mềm không được cung cấp). Màn hình có thể được lật theo trục x và y. Điều đó rất hữu ích nếu bạn muốn gắn màn hình LCD theo một hướng khác.

Một số thủ tục đã được sao chép từ thư viện U8g2:

  • Vẽ đường thẳng
  • DrawPixel
  • DrawHLine
  • DrawVLine
  • DrawBox
  • DrawFrame
  • DrawCircle
  • DrawDisc
  • DrawFilledEllipse
  • DrawEllipse
  • DrawTriangle
  • UC1701SetCursor
  • UC1701ClearDisplay

Một số thủ tục hơi khác một chút:

  • void DrawChar (uint8_t c, Font chữ);
  • void DrawString (char * s, word Font);
  • void DrawInt (int i, Font chữ);

Thủ tục vẽ chuỗi được thông qua chỉ mục của một Phông chữ. Phông chữ được khai báo trong bộ nhớ flash của Arduino để chúng không chiếm SRAM quý giá. Ba phông chữ được cung cấp (nhỏ, vừa và lớn). Chúng chỉ được liên kết trong và chiếm bộ nhớ flash nếu bạn sử dụng chúng (khoảng 500 đến 2000 byte mỗi bộ).

"Màu" được xử lý khác với thư viện U8g2. Khi màn hình LCD được xóa, nó có nền tối. Nếu MakeMark (một biến toàn cục) là true, bản vẽ được thực hiện bằng màu trắng. Nếu MakeMark là false, bản vẽ sẽ được thực hiện trong bóng tối.

Một số quy trình là duy nhất cho UC1701:

SetInverted vẽ màu đen trên trắng thay vì trắng trên đen.

void SetInverted (bool inv);

Độ sáng và độ tương phản của UC1701 được thiết lập bởi:

  • void SetContrast (giá trị uint8_t); // được đề xuất là 14
  • void SetResistor (giá trị uint8_t); // được đề xuất là 7

Họ làm việc cùng nhau theo một cách khá không hài lòng.

SetEnabled tắt màn hình LCD:

void SetEnabled (bool en);

Màn hình hiển thị 4uA khi ngủ. Bạn cũng nên tắt đèn nền - lái nó từ một chân Nano. Sau khi bật lại, UC1701 sẽ được đặt lại; màn hình bị xóa và Độ tương phản và Điện trở sẽ được đặt lại về giá trị mặc định của chúng.

Vì vậy, kết luận lại, màn hình COG rẻ và có kích thước vừa phải. Chúng dễ dàng kết nối với Arduino.

Đề xuất: