Arduino UNO R4 OLED 128x32
Hướng dẫn này sẽ chỉ cho bạn cách sử dụng Arduino UNO R4 với màn hình OLED 128x32 I2C. Bạn sẽ học:
- Cách kết nối màn hình OLED 128x32 với Arduino UNO R4.
- Cách lập trình Arduino UNO R4 để hiển thị văn bản và số trên màn hình OLED 128x32.
- Cách tạo hình vẽ trên màn hình OLED 128x32 với Arduino UNO R4.
- Cách hiển thị hình ảnh trên màn hình OLED 128x32 với Arduino UNO R4.
- Cách căn giữa văn bản và số theo chiều dọc và ngang trên màn hình OLED 128x32.

Phần Cứng Cần Thiết
| 1 | × | Arduino UNO R4 WiFi hoặc Arduino UNO R4 Minima | ||
| 1 | × | (Tùy chọn) DIYables STEM V4 IoT, tương thích với Arduino Uno R4 WiFi | ||
| 1 | × | Arduino UNO R4 Minima (Thay thế) | ||
| 1 | × | Cáp USB Type-C | ||
| 1 | × | Màn Hình OLED SSD1306 I2C 128x32 | ||
| 1 | × | Dây Cắm Jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Power Splitter for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Giới Thiệu Về Màn Hình OLED
Sơ Đồ Chân Màn Hình OLED I2C
- Chân GND: nên được kết nối với mass của Arduino UNO R4
- Chân VCC: là nguồn cung cấp cho màn hình, chúng ta kết nối với chân 5V trên Arduino UNO R4.
- Chân SCL: là chân xung clock nối tiếp cho giao diện I2C.
- Chân SDA: là chân dữ liệu nối tiếp cho giao diện I2C.

※ Lưu ý:
Cách sắp xếp chân trên module OLED có thể khác nhau tùy thuộc vào nhà sản xuất và model của module. Luôn kiểm tra và làm theo nhãn trên module OLED. Hãy chú ý!
Hướng dẫn này dành cho màn hình OLED sử dụng driver SSD1306 I2C. Chúng tôi đã test với màn hình OLED của DIYables. Nó hoạt động hoàn hảo không có vấn đề gì.
Sơ Đồ Đấu Nối

This image is created using Fritzing. Click to enlarge image
Nếu bạn sử dụng loại Arduino UNO R4 khác, sơ đồ chân sẽ không giống như Uno. Xem bảng dưới đây để biết thông tin về các mẫu Arduino UNO R4 khác.
| Module OLED 128x32 | Arduino UNO R4 |
|---|---|
| Vin | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Cách Sử Dụng OLED Với Arduino UNO R4
Cài Đặt Thư Viện SSD1306 OLED
- Vào biểu tượng Libraries ở phía bên trái của Arduino IDE.
- Gõ "SSD1306" vào ô tìm kiếm và tìm thư viện SSD1306 do Adafruit làm.
- Nhấn nút Install để thêm thư viện.

- Bạn sẽ cần cài đặt thêm một số thư viện khác.
- Nhấn nút Install All để cài đặt tất cả các thư viện cần thiết.

Cách lập trình cho OLED
- Bao gồm thư viện.
- Thiết lập kích thước màn hình cho OLED 128x32.
- Tạo đối tượng SSD1306 OLED.
- Trong hàm setup(), thiết lập màn hình OLED.
- Sau đó bạn có thể hiển thị văn bản, hình ảnh và vẽ đường.
Mã Arduino UNO R4 - Hiển Thị Văn Bản Trên OLED
Dưới đây là một số hàm bạn có thể sử dụng để hiển thị văn bản trên OLED:
- oled.clearDisplay(): tắt tất cả pixels.
- oled.drawPixel(x, y, color): vẽ một pixel tại tọa độ x, y.
- oled.setTextSize(n): thay đổi kích thước văn bản, với lựa chọn từ 1 đến 8.
- oled.setCursor(x, y): đặt điểm bắt đầu cho văn bản.
- oled.setTextColor(WHITE): làm cho màu văn bản trở thành trắng.
- oled.setTextColor(BLACK, WHITE): làm cho màu văn bản thành đen và nền trắng.
- oled.println("message"): hiển thị văn bản.
- oled.println(number): hiển thị một số.
- oled.println(number, HEX): hiển thị một số ở định dạng thập lục phân.
- oled.display(): cập nhật màn hình với các thay đổi.
- oled.startscrollright(start, stop): di chuyển văn bản từ trái sang phải.
- oled.startscrollleft(start, stop): di chuyển văn bản từ phải sang trái.
- oled.startscrolldiagright(start, stop): di chuyển văn bản chéo từ dưới-trái lên trên-phải.
- oled.startscrolldiagleft(start, stop): di chuyển văn bản chéo từ dưới-phải lên trên-trái.
- oled.stopscroll(): dừng mọi văn bản cuộn.
Mã Arduino UNO R4 - Vẽ Trên OLED
Mã Arduino UNO R4 – Hiển Thị Hình Ảnh
Để hiển thị hình ảnh trên màn hình OLED, trước tiên hãy chuyển đổi hình ảnh (bất kỳ định dạng nào) thành mảng bitmap. Bạn có thể sử dụng công cụ Image to Bitmap Converter này để chuyển đổi. Xem hình bên dưới để thấy cách chuyển một hình ảnh thành mảng bitmap. Tôi đã chuyển biểu tượng Arduino thành mảng bitmap.

Sao chép mã mảng mới và cập nhật nó trong mảng biểu tượng Arduino trong code bên dưới.
Video dưới đây hiển thị cách thực hiện với màn hình OLED 128x64 và Arduino Uno và biểu tượng Arduino
Chúng ta có thể làm tương tự để nó hoạt động với Arduino Uno R4 và OLED 128x32. Code dưới đây hiển thị biểu tượng DIYables trên OLED 128x32
※ Lưu ý:
- Kích thước hình ảnh phải nhỏ hơn hoặc bằng kích thước màn hình.
- Để sử dụng code đã cho cho OLED 128x32, bạn phải thay đổi kích thước hình ảnh và điều chỉnh chiều rộng và chiều cao trong hàm oled.drawBitmap();.
Cách căn giữa theo chiều dọc và ngang văn bản/số trên OLED
Khắc Phục Sự Cố OLED
Nếu màn hình OLED không hiển thị gì, vui lòng làm theo các bước sau:
- Đảm bảo đấu nối được thực hiện đúng cách.
- Xác nhận rằng OLED I2C của bạn được trang bị driver SSD1306.
- Xác minh địa chỉ I2C của OLED bằng cách sử dụng code quét địa chỉ I2C sau trên Arduino UNO R4.
Kết quả trên Serial Monitor: