ESP32 Màn Hình LED 7 Đoạn 4 Chữ Số TM1637
Hướng dẫn này sẽ dạy bạn cách sử dụng ESP32 với module màn hình LED 7 đoạn 4 chữ số TM1637. Nội dung bao gồm các chủ đề sau:
- Kết nối màn hình LED 7 đoạn 4 chữ số với ESP32
- Lập trình ESP32 để hiển thị thông tin trên màn hình LED 7 đoạn 4 chữ số.

Trong hướng dẫn này, chúng ta sẽ sử dụng module màn hình LED 7 đoạn 4 chữ số có dấu hai chấm phân cách. Nếu bạn muốn hiển thị số thập phân, vui lòng tham khảo hướng dẫn ESP32 - 74HC595 4-Digit 7-Segment Display.
Linh Kiện Cần Thiết
| 1 | × | mô-đun phát triển ESP-WROOM-32 | ||
| 1 | × | Alternatively, ESP32 Uno-form board | ||
| 1 | × | Alternatively, ESP32 S3 Uno-form board | ||
| 1 | × | Cáp USB Type-C | ||
| 1 | × | Màn Hình LED 7 Đoạn 4 Chữ Số TM1637 | ||
| 1 | × | breadboard (bo mạch thí nghiệm) | ||
| 1 | × | Dây Jumper | ||
| 1 | × | (Tùy chọn) Adapter Nguồn 5V cho ESP32 | ||
| 1 | × | (Khuyến nghị) Screw Terminal Expansion Board for ESP32 | ||
| 1 | × | (Khuyến nghị) Breakout Expansion Board for ESP32 | ||
| 1 | × | (Khuyến nghị) Power Splitter for ESP32 |
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về Màn Hình LED 7 Đoạn 4 Chữ Số TM1637
Màn hình LED 7 đoạn 4 chữ số thường được sử dụng cho đồng hồ, timer và bộ đếm, hiển thị nhiệt độ... Tuy nhiên nó thường yêu cầu 12 kết nối. Module TM1637 đơn giản hóa việc này bằng cách chỉ cần 4 kết nối: 2 cho nguồn và 2 cho điều khiển các đoạn LED.
Module TM1637 thường bao gồm bốn LED 7 đoạn và một trong các tùy chọn sau:
- LED hình dấu hai chấm ở giữa: Lý tưởng để hiển thị thời gian theo giờ và phút, hoặc phút và giây, hoặc điểm số của hai đội.
- Bốn LED hình chấm cho mỗi chữ số: Lý tưởng để hiển thị nhiệt độ hoặc bất kỳ giá trị thập phân nào.
Sơ Đồ Chân TM1637 4-Digit 7-Segment Display
Module màn hình LED 7 đoạn 4 chữ số TM1637 có bốn chân:
- Chân CLK: là chân nhận tín hiệu xung clock, cần được kết nối với bất kỳ chân digital nào trên ESP32.
- Chân DIO: là chân vào/ra dữ liệu, cần được kết nối với bất kỳ chân digital nào trên ESP32.
- Chân VCC: dùng để cấp nguồn cho module và nên được kết nối với nguồn 3.3V đến 5V.
- Chân GND: là chân mass, cần được kết nối với ground của ESP32.

Sơ Đồ Đấu Nối
Để kết nối TM1637 với ESP32, cần bốn dây: hai cho nguồn và hai để điều khiển màn hình. Module có thể được cấp nguồn từ đầu ra 5 volt của ESP32. Các chân CLK và DIO nên được kết nối với bất kỳ chân digital nào của Arduino; ví dụ, chân 2 và 3. Nếu sử dụng các chân khác, số chân trong code phải được thay đổi.

This image is created using Fritzing. Click to enlarge image
Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.
Cài Đặt Thư Viện
Để lập trình dễ dàng cho màn hình LED 7 đoạn 4 chữ số TM1637, chúng ta cần cài đặt thư viện TM1637Display của Avishay Orpaz. Làm theo các bước sau để cài đặt thư viện:
- Click vào biểu tượng Libraries trên thanh bên trái của Arduino IDE.
- Tìm kiếm "TM1637", sau đó tìm thư viện TM1637Display của Avishay Orpaz
- Click nút Install.

Cách Lập Trình TM1637 4-digit 7-segment với ESP32
- Include thư viện
- Xác định các chân ESP32 được kết nối với CLK và DIO của module hiển thị. Ví dụ, D9 và D10.
- Tạo đối tượng TM1637Display.
- Sau đó bạn có thể hiển thị số, số có dấu thập phân, số có dấu âm, hoặc chữ cái. Trong trường hợp chữ cái, bạn cần xác định hình dạng của chữ cái. Hãy xem từng trường hợp riêng biệt.
- Hiển thị số: xem các ví dụ bên dưới, '_' trong mô tả sau đây đại diện cho chữ số không được hiển thị trong thực tế:
- Hiển thị số với dấu hai chấm hoặc dấu chấm:
Bạn có thể tìm thêm thông tin về các hàm ở cuối hướng dẫn này.
Code ESP32
Các Bước Nhanh
Để bắt đầu với ESP32 trên Arduino IDE, làm theo các bước sau:
- Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
- Thực hiện đấu nối theo hình trên.
- Kết nối bo mạch ESP32 với PC qua cáp micro USB
- Mở Arduino IDE trên PC của bạn.
- Chọn đúng bo mạch ESP32 (ví dụ: ESP32 Dev Module) và cổng COM.
- Copy code trên và paste vào Arduino IDE.
- Biên dịch và upload code lên bo mạch ESP32 bằng cách click nút Upload trên Arduino IDE

- Quan sát trạng thái của màn hình 7 đoạn.
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.
Tham Khảo Các Hàm
Dưới đây là tham khảo cho:
- display.clear()
- display.showNumberDec()
- display.showNumberDecEx()
- display.setSegments()
- display.setBrightness()
display.clear()
Mô Tả
Hàm này xóa màn hình hiển thị. Nó tắt tất cả các LED.
display.showNumberDec()
Mô Tả
Màn hình 7 đoạn được sử dụng để hiển thị số thập phân. Hàm này được dùng cho mục đích đó.
Cú Pháp
Tham Số
- num: là giá trị được hiển thị trên màn hình 7 đoạn, trong phạm vi từ -9999 đến 9999.
- leading_zero: tham số tùy chọn với giá trị mặc định là false, xác định có nên hiển thị các số 0 đằng trước hay không.
- length: tham số tùy chọn khác với giá trị mặc định là 4, thiết lập số lượng chữ số được hiển thị.
- pos: cũng là tham số tùy chọn với giá trị mặc định là 0, thiết lập vị trí của chữ số có nghĩa nhất.
Xin lưu ý rằng hàm sẽ không hiển thị gì nếu số nằm ngoài phạm vi hoặc nếu giá trị length lớn hơn 4.
showNumberDecEx()
Mô Tả
Hàm này là phiên bản nâng cấp của showNumberDec(), cung cấp nhiều quyền kiểm soát hơn việc hiển thị số thập phân trên màn hình 7 đoạn. Nó có khả năng điều khiển riêng lẻ các đoạn chấm hoặc dấu hai chấm của mỗi chữ số.
Cú Pháp
Tham Số
- num1: Đây là số được hiển thị trên màn hình 7 đoạn. Nó nên trong phạm vi từ -9999 đến 9999.
- dots: Tham số này được dùng để xác định đoạn nào của màn hình sẽ được bật làm dấu chấm. Mỗi bit của giá trị tương ứng với một chữ số trên màn hình. Các giá trị có thể là:
- 0b10000000 để hiển thị dấu chấm đầu tiên (0.000)
- 0b01000000 để hiển thị dấu chấm thứ hai (00.00), hoặc dấu hai chấm (00:00), Tùy thuộc vào loại module.
- 0b00100000 để hiển thị dấu chấm thứ ba (000.0)
- leading_zero: Đây là tham số tùy chọn với giá trị mặc định là false. Nếu được đặt thành true, các số 0 đằng trước sẽ được hiển thị.
- length: Đây là tham số tùy chọn với giá trị mặc định là 4. Nó xác định số lượng chữ số được hiển thị trên màn hình 7 đoạn.
- pos: Đây là tham số tùy chọn với giá trị mặc định là 0. Nó thiết lập vị trí của chữ số có nghĩa nhất của số.
Ví dụ, nếu bạn sử dụng display.showNumberDecEx(1530, 0b01000000), nó sẽ hiển thị:
- Số 15:30 trên màn hình 7 đoạn nếu module có LED hình dấu hai chấm.
- Số 15.30 trên màn hình 7 đoạn nếu module có LED hình chấm.
Xin lưu ý rằng hàm sẽ không hiển thị gì nếu số nằm ngoài phạm vi hoặc nếu giá trị length lớn hơn 4.
setSegments()
Mô Tả
Hàm này cho phép thiết lập trực tiếp các đoạn của màn hình 7 đoạn. Nó có thể được sử dụng để hiển thị chữ cái, ký tự đặc biệt, hoặc tắt tất cả các đoạn LED.
Cú Pháp
Tham Số
- segments: Tham số này thiết lập các đoạn của màn hình 7 đoạn, là một mảng các byte. Mỗi byte đại diện cho các đoạn của mỗi chữ số và mỗi đoạn được đại diện bởi một bit trong byte.
- length: Đây là tham số tùy chọn với giá trị mặc định là 4. Nó xác định số lượng chữ số được hiển thị trên màn hình 7 đoạn.
- pos: Đây là tham số tùy chọn với giá trị mặc định là 0. Nó xác định vị trí của chữ số có nghĩa nhất của số.
Hàm này hữu ích khi bạn cần hiển thị ký tự hoặc ký hiệu không có sẵn trên màn hình 7 đoạn tiêu chuẩn. Bạn có thể tạo bất kỳ mẫu nào bạn muốn bằng cách thiết lập các đoạn trực tiếp.
Xin lưu ý rằng hàm sẽ không hiển thị gì nếu số nằm ngoài phạm vi hoặc giá trị length lớn hơn 4.
setBrightness()
Mô Tả
Độ sáng của màn hình 7 đoạn có thể được điều chỉnh bằng hàm này.
Cú Pháp
Tham Số
- brightness: Tham số này điều chỉnh độ sáng của màn hình 7 đoạn. Giá trị nên từ 0 đến 7, với số cao hơn tạo ra màn hình sáng hơn.
- on: Đây là tham số tùy chọn, với giá trị mặc định là true. Nó được dùng để bật hoặc tắt màn hình. Nếu đặt thành false, màn hình sẽ bị vô hiệu hóa.