Arduino Màn hình 7 đoạn 4 chữ số 74HC595

Để làm các dự án đồng hồ, hẹn giờ và bộ đếm, cần một màn hình hiển thị 7 đoạn 4 chữ số chuẩn, nhưng nó thường yêu cầu 12 kết nối. Mô-đun 74HC595 làm cho việc này dễ dàng hơn bằng cách chỉ yêu cầu 5 kết nối: 2 cho nguồn và 3 để điều khiển các đoạn.

Hướng dẫn này sẽ không làm bạn quá tải bằng việc đi sâu vào phần cứng. Thay vào đó, chúng ta sẽ học cách kết nối màn hình 7 đoạn 4 chữ số với Arduino, và cách lập trình nó để hiển thị những gì chúng ta muốn.

màn hình 7 đoạn 4 chữ số cho Arduino 74hc595

Bài hướng dẫn này sẽ sử dụng mô-đun hiển thị 7 đoạn có 4 chữ số với 4 điểm chấm, có thể hiển thị các giá trị ở dạng số thực. Nếu bạn muốn hiển thị dấu hai chấm phân cách, hãy dùng Arduino - Màn hình 4 chữ số 7 đoạn TM1637.

Phần cứng cần chuẩn bị

1×Arduino Uno R3
1×USB 2.0 cable type A/B (for USB-A PC)
1×USB 2.0 cable type C/B (for USB-C PC)
1×74HC595 4-digit 7-segment Display
1×dây jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino Uno
1×(Khuyến nghị) Breadboard Shield for Arduino Uno
1×(Khuyến nghị) Enclosure for Arduino Uno
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về 74HC595 hiển thị 7 đoạn 4 chữ số

Một mô-đun hiển thị 7 đoạn 4 chữ số với 74HC595 thường bao gồm 4 đèn LED 7 đoạn, 4 đèn LED hình chấm và một bộ điều khiển 74HC595 cho mỗi chữ số. Nó lý tưởng để hiển thị nhiệt độ hoặc bất kỳ giá trị thập phân nào.

Sơ đồ các chân

Module hiển thị 4 chữ số 7 đoạn sử dụng 74HC595 bao gồm 5 chân:

  • SCLK pin: là một pin đầu vào xung đồng hồ. Kết nối với bất kỳ pin kỹ thuật số nào trên Arduino.
  • RCLK pin: là một pin đầu vào xung đồng hồ. Kết nối với bất kỳ pin kỹ thuật số nào trên Arduino.
  • DIO pin: là một pin dữ liệu vào/ra. Kết nối với bất kỳ pin kỹ thuật số nào trên Arduino.
  • VCC pin: cấp nguồn cho mô-đun. Kết nối nó với nguồn cấp 3.3V đến 5V.
  • GND pin: là một chân đất.
sơ đồ chân của module 74hc595

Sơ đồ đấu dây

Bảng dưới đây cho thấy cách nối giữa các chân Arduino và các chân của màn hình 7 đoạn 4 chữ số dùng 74HC595.

Arduino 74HC595 7-segment display
5V5V
7SCLK
6RCLK
5DIO

Các số chân trong mã nên được thay đổi nếu sử dụng các chân khác.

sơ đồ nối dây của mô-đun Arduino 74hc595

This image is created using Fritzing. Click to enlarge image

Cài đặt thư viện

Để lập trình dễ dàng cho màn hình 7 đoạn 4 chữ số sử dụng 74HC595, chúng ta cần cài đặt thư viện DIYables_4Digit7Segment_74HC595 do DIYables.io cung cấp. Làm theo các bước dưới đây để cài đặt thư viện:

  • Đi tới biểu tượng Thư viện ở thanh bên trái của Arduino IDE.
  • Tìm kiếm “DIYables_4Digit7Segment_74HC595”, sau đó tìm thư viện DIYables_4Digit7Segment_74HC595 của DIYables.io
  • Nhấp vào nút Cài đặt.
thư viện hiển thị 7 đoạn 4 chữ số cho Arduino 74hc595

Bạn cũng có thể xem thư viện này trên Github

Cách Lập Trình Cho 74HC595 Màn hình 7 Đoạn 4 Chữ Số Bằng Arduino

  • Bao gồm thư viện
#include <DIYables_4Digit7Segment_74HC595.h>
  • Định nghĩa các chân của Arduino kết nối tới SCLK, RCLK và DIO của module hiển thị. Ví dụ, chân D7, D6 và D5
#define SCLK 7 // The Arduino pin connected to SCLK #define RCLK 6 // The Arduino pin connected to RCLK #define DIO 5 // The Arduino pin connected to DIO
  • Tạo một đối tượng hiển thị thuộc loại DIYables_4Digit7Segment_74HC595
DIYables_4Digit7Segment_74HC595 display = DIYables_4Digit7Segment_74HC595(CLK, DIO);
  • Sau đó bạn có thể hiển thị các số nguyên với tùy chọn đệm số 0, hỗ trợ số âm:
display.printInt(-13, false); // you can display a value from -999 to 9999
  • Bạn có thể hiển thị các số thực với số chữ số thập phân, các tùy chọn đệm bằng 0, hỗ trợ số âm:
display.printFloat(-9.2, 1, false);
  • Bạn cũng có thể hiển thị số, dấu chấm thập phân và ký tự theo từng chữ số bằng cách sử dụng các hàm cấp thấp:
// display 9.3°C display.clear(); display.setNumber(1, 9); // set 9 at the 1st digit display.setDot(1); // set . at the 1st digit display.setNumber(2, 3); // set 3 at the 2nd digit display.setChar(3, SegChars::DEGREE); // set ° at the 3rd digit display.setChar(4, SegChars::C); // set C at the 3rd digit display.show(); // show on the display
  • Vì mô-đun 74HC595 4 chữ số 7 đoạn sử dụng kỹ thuật ghép kênh theo thời gian để điều khiển từng thanh phân đoạn và LED, mã Arduino PHẢI:
    • Gọi hàm display.show() trong vòng lặp chính
    • Không được sử dụng hàm delay() trong vòng lặp chính

    Bạn có thể xem thêm chi tiết tại tham khảo thư viện

Mã Arduino - Hiển thị số nguyên

/* Created by DIYables This example code is in the public domain Product page: https://diyables.io/products/4-digit-7-segment-display-led-74hc595-driver-with-4-dots */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library #define SCLK 7 // The Arduino pin connected to SCLK #define RCLK 6 // The Arduino pin connected to RCLK #define DIO 5 // The Arduino pin connected to DIO DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO); void setup() { Serial.begin(9600); display.printInt(-13, false); // you can display a value from -999 to 9999 //display.printInt(-132, false); //display.printInt(9132, false); //display.printInt(132, false); //display.printInt(32, false); //display.printInt(2, false); //display.printInt(2, true); } void loop() { display.loop(); // MUST call the display.loop() function in loop() // DO SOMETHING HERE // NOTE: do NOT use the delay() function in loop because it affects to the multiplexing }

Hướng dẫn từng bước

  • Sao chép mã ở trên và mở bằng Arduino IDE
  • Nhấp nút Tải lên trên Arduino IDE để tải mã lên Arduino
  • Xem trạng thái của màn hình 7 đoạn

Mã Arduino - Hiển thị số thực dấu phẩy động

/* Created by DIYables This example code is in the public domain Product page: https://diyables.io/products/4-digit-7-segment-display-led-74hc595-driver-with-4-dots */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library #define SCLK 7 // The Arduino pin connected to SCLK #define RCLK 6 // The Arduino pin connected to RCLK #define DIO 5 // The Arduino pin connected to DIO DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO); void setup() { Serial.begin(9600); display.printFloat(-9.2, 1, false); //display.printFloat(-92.4, 1, false); //display.printFloat(-9.24, 2, false); //display.printFloat(192.4, 1, false); //display.printFloat(19.24, 2, false); //display.printFloat(1.924, 3, false); } void loop() { display.loop(); // MUST call the display.loop() function in loop() // DO SOMETHING HERE // NOTE: do NOT use the delay() function in loop because it affects to the multiplexing }

Mã Arduino - Hiển thị nhiệt độ

/* Created by DIYables This example code is in the public domain Product page: https://diyables.io/products/4-digit-7-segment-display-led-74hc595-driver-with-4-dots */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library #define SCLK 7 // The Arduino pin connected to SCLK #define RCLK 6 // The Arduino pin connected to RCLK #define DIO 5 // The Arduino pin connected to DIO DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO); void setup() { Serial.begin(9600); // display 9.3°C by controlling digit by digit display.clear(); display.setNumber(1, 9); // set 9 at the 1st digit display.setDot(1); // set . at the 1st digit display.setNumber(2, 3); // set 3 at the 2nd digit display.setChar(3, SegChars::DEGREE); // set ° at the 3rd digit display.setChar(4, SegChars::C); // set C at the 3rd digit display.show(); // show on the display } void loop() { display.loop(); // MUST call the display.loop() function in loop() // DO SOMETHING HERE // NOTE: do NOT use the delay() function in loop because it affects to the multiplexing }

Kết quả là như hình dưới đây:

mô-đun Arduino 74hc595 hiển thị nhiệt độ

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.