Trang chủ Điện - Điện tửArduinoHướng dẫn sử dụng Module TM1638 với Arduino: 8 LED 7 đoạn, 8 LED đơn, 8 Nút nhấn chỉ 3 chân!

Hướng dẫn sử dụng Module TM1638 với Arduino: 8 LED 7 đoạn, 8 LED đơn, 8 Nút nhấn chỉ 3 chân!

bởi Admin
48 lượt xem 6 Phút đọc

Giải pháp "Tất cả trong một" cho giao diện người dùng

Module TM1638 (LED & KEY) là một giải pháp giao diện người dùng (HMI) "tất cả trong một" cực kỳ mạnh mẽ cho các dự án vi điều khiển. Với khả năng điều khiển đồng thời 24 linh kiện phần cứng (bao gồm 8 LED 7 đoạn, 8 LED đơn và 8 nút nhấn), module này chỉ chiếm dụng duy nhất 3 chân I/O nhờ giao tiếp Serial 3 dây thông minh.

Được thiết kế dựa trên chip driver TM1638 chuyên dụng, module không chỉ giúp hiển thị dữ liệu một cách trực quan mà còn hỗ trợ quét phím tự động, giúp giảm tải công việc cho CPU của vi điều khiển. Đây là linh kiện lý tưởng cho các nhà phát triển muốn xây dựng bảng điều khiển chuyên nghiệp nhưng bị giới hạn về số lượng chân cắm trên các board như Arduino Uno, Nano hay ESP8266.

8 LED 7 Đoạn

Hiển thị số liệu, thông báo, thời gian và menu cài đặt.

8 LED Đơn

Báo trạng thái hoạt động của các thiết bị ngoại vi hoặc tiến trình.

8 Nút Nhấn

Nhập liệu trực tiếp, điều hướng menu hoặc kích hoạt lệnh.

💡 Điểm cốt lõi: Nhờ giao tiếp Serial 3 dây, toàn bộ 24 linh kiện này được quản lý thông qua duy nhất một chip TM1638, giúp tiết kiệm tối đa tài nguyên cho vi điều khiển của bạn.

Thông số kỹ thuật

Điện áp 5V DC
Chip TM1638
Giao tiếp Serial 3 dây
Độ sáng 8 mức tùy chỉnh
tm1638-mach-8-nut-nhan-8-led-7-doan-front-view
Vị trí các LED và Nút nhấn thực tế

Sơ đồ kết nối tối giản

Sử dụng các chân Analog để giải phóng các chân Digital tốc độ cao cho các cảm biến khác:

Chân Module Chức năng Kết nối Arduino
VCC Nguồn dương 5V
GND Nối đất GND
STB Strobe (Chọn chip) D7
CLK Clock (Xung nhịp) D9
DIO Data (Dữ liệu) D8
tm1638-mach-8-nut-nhan-8-led-7-doan-diagram
Kết nối giữa Arduino Uno và Module TM1638

Chuẩn bị: Cài đặt thư viện TM1638.h

Để code hoạt động, bạn cần cài đặt thư viện hỗ trợ mạnh mẽ này:

  1. Mở Arduino IDE.
  2. Vào menu Tools -> Manage Libraries...
  3. Tìm kiếm từ khóa "TM1638".
  4. Chọn thư viện của tác giả dvarrel và nhấn Install.
  5. Vào File --> Examples --> TM1638 --> test_TM1638.

Phân tích Code & Demo

Dưới đây là mã nguồn tối ưu để kiểm tra toàn bộ tính năng của module:

Mastering_TM1638.ino C++ / Arduino
#include <TM1638.h>
//choose digital pins compatibles with your board
#define STB 7 // Strobe digital pin
#define CLK 9 // clock digital pin
#define DIO 8 // data digital pin
TM1638 tm(CLK,DIO,STB);
void setup() {
  Serial.begin(115200);
  tm.reset();
  tm.test();
}
pulse_t pulse=PULSE1_16;
void loop() {
  const uint8_t text[]={0x7c,0x1c,0x78,0x78,0x5c,0x54};
  for (uint8_t i=0;i<sizeof(text);i++)
    tm.displayDig(7-i, text[i]);
  uint8_t buttons = tm.getButtons();
  tm.writeLeds(buttons);
  static uint32_t timer = millis();
  
  if ( millis()-timer > 1000){
    timer=millis();
    tm.displaySetBrightness(pulse);
    pulse = (pulse==PULSE1_16) ? PULSE14_16 : PULSE1_16;
  }
}
							

Cơ chế hoạt động của Code:

  • tm.test(): Đảm bảo mọi phân đoạn LED đều hoạt động ngay khi cấp nguồn.
  • text[] Hex Mapping: Các mã như 0x7c được tính toán để bật các thanh LED cụ thể tạo thành hình chữ cái.
  • tm.writeLeds(buttons): Một cách lập trình cực kỳ tinh gọn – giá trị đọc từ 8 nút nhấn (dạng byte) được gửi trực tiếp để điều khiển 8 LED đơn.
  • millis(): Giúp chương trình không bị "đơ" như khi dùng delay(), cho phép quét nút nhấn liên tục trong khi vẫn xử lý nhấp nháy độ sáng.

Ứng dụng thực tế trong các dự án Arduino

🖥️

Bảng điều khiển máy móc (HMI)

Hiển thị thông số và dùng phím để cài đặt.

⏱️

Đồng hồ / Đếm sản phẩm

Tận dụng 8 chữ số để hiển thị thời gian hoặc số lượng.

📋

Hệ thống Menu

Dùng phím để chọn các chế độ hoạt động khác nhau.

🌡️

Máy đo nhiệt độ/độ ẩm

Hiển thị giá trị cảm biến một cách trực quan.

Video

Để lại bình luận

1 bình luận

truong-tu-thuc-tphcm 03/05/2026 - 00:07

Hello, i believe that i noticed you visited my blog thus i came to go back the want?.I am trying
to find issues to improve my website!I suppose its adequate to
use some of your concepts!!

trả lời
Focus Mode

Đã phát hiện trình chặn quảng cáo

Vui lòng hỗ trợ chúng tôi bằng cách tắt tiện ích chặn quảng cáo (AdBlocker) trên trình duyệt của bạn khi truy cập trang web của chúng tôi.