Chế màn hình e-ink với mcu bất kì

Chế màn hình e-ink với mcu bất kì

Màn hình E-ink là lựa chọn tuyệt vời cho các ứng dụng tiết kiệm năng lượng, vì vậy kết hợp nó với một vi điều khiển tiêu thụ ít điện là rất hợp lý và màn hình e-ink cũng rất sắc nét, mỗi tội việc chuyển ảnh hơi "chậm"

Màn hình

Mình dùng màn hình eink 2.9 inch được gỡ ra từ các "tag price" của siêu thị, giá cả tất nhiên là rẻ hơn nhiều so với hãng rồi :P . Có nhiều kích cỡ khác nhau, nhưng các ví dụ dưới đây sẽ tập trung vào cách làm với mẫu này. Màn hình có độ phân giải 296x128 pixel, chỉ hiển thị đen trắng.
Tất nhiên để điều khiển thì cần có mạch driver kèm theo rồi. Mạch này là mạch chân 24 pin, giao tiếp SPI nhé

Driver E-ink 2.9 inch (24 pin)

Cận cảnh hơn nhé:

Cận cảnh driver 24 pin màn hình e-ink dùng với MCU

Chân kết nối:


Trong bài viết này, mình sẽ kết nối driver với ESP32, các bạn có thể kết nối tương tự với MCU bất kì như esp8266, arduino, stm32...

STTDriverESP32 Pin
1GNDGND
23.3V3.3
3SCLG18
4SDIG23
5RESETG16
6DCG17
7CSG5
8BUSYG4


Code & thư viện cho màn hình e-ink

Mình sẽ sử dụng thư viện GxEPD là thư viện hỗ trợ tốt và dễ dùng, hỗ trợ rất nhiều loại màn hình khác chẳng hạn:

  • DEPG0150BN 1.50" b/w 200x200, e.g. LILYGO® TTGO T5 V2.4.1 1.50 inch
  • GDEP015OC1 1.54" b/w 200x200
  • GDEH0154D67 1.54" b/w 200x200 replacement for GDEP015OC1
  • GDEW0154T8 1.54" b/w 152x152 UC8151
  • .....

Cách cài đặt thư viện GxEPD vào arduino IDE:

Để cài đặt thư viện GxEPD cho màn hình E-Paper (e-ink) vào Arduino IDE, bạn có thể làm theo các bước dưới đây:

Cách 1: Cài đặt qua Library Manager (Cách đơn giản nhất)

  1. Mở Arduino IDE.
  2. Vào Sketch (Hoặc Bản phác thảo trong tiếng Việt) → Include LibraryManage Libraries (Thư viện quản lý).
  3. Trong cửa sổ Library Manager, tìm kiếm từ khóa GxEPD.
  4. Chọn GxEPD của Jean-Marc Zingg.
  5. Nhấn nút Install (Cài đặt).

Cách 2: Cài đặt thủ công từ GitHub

  1. Truy cập GitHub chính thức của thư viện: https://github.com/ZinggJM/GxEPD
  2. Tải xuống mã nguồn bằng cách nhấn CodeDownload ZIP.
  3. Mở Arduino IDE → SketchInclude LibraryAdd .ZIP Library.
  4. Chọn file ZIP bạn vừa tải xuống và nhấn Open.

Cách 3: Cài đặt thông qua Board Manager (nếu sử dụng ESP32/ESP8266)

Nếu bạn sử dụng ESP32 hoặc ESP8266, hãy chắc chắn rằng bạn đã cài đặt board phù hợp trước:

  1. Vào FilePreferences → Trong phần Additional Board Manager URLs, thêm:
    • ESP32: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • ESP8266: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  2. Vào ToolsBoardBoards Manager, tìm và cài đặt ESP32 hoặc ESP8266.

Kiểm tra thư viện đã cài đặt

  1. Sau khi cài đặt xong, vào FileExamples → Tìm mục GxEPD.
  2. Chạy một trong các ví dụ như GxEPD_Example để kiểm tra màn hình e-ink có hoạt động không.

Nạp code mẫu:


=> Các bạn có thể tải và xem code mẫu trong bài viết này ở link này nhé!

Chú ý: đoạn khoanh đỏ đầu tiên là khai báo thư viện và font sẽ dùng trong code, vùng khoanh đỏ thứ 2 là khai báo chân nhé, tùy vào mcu bạn sử dụng mà các bạn có thể tùy chỉnh theo nhu cầu. Trong code này sử dụng chân SPI mặc định của esp32

Chân SPI mặc định trên ESP32

Tín hiệuChân GPIO
SCK (Clock)GPIO 18
MISO (Master In Slave Out)GPIO 19
MOSI (Master Out Slave In)GPIO 23
CS (Chip Select)GPIO 5

ESP32 cho phép bạn tùy chỉnh chân SPI nếu không muốn dùng mặc định, bằng cách sử dụng thư viện SPI.h trong Arduino nhé!


Chúc các bạn thành công, nếu có nhu cầu mua mạch các bạn liên hệ mình nhé!

Mọi thông tin liên hệ: