LED 7 đoạn là gì? Cách hiển thị LED 7 đoạn bằng Arduino

LED 7 đoạn là gì? Cách hiển thị LED 7 đoạn bằng Arduino

Trong bài viết này, mình sẽ chia sẽ cho các bạn về LED 7 đoạn là gì, và cách đếm từ 0 đến 9 trên LED 7 đoạn bằng Arduino. Thông qua bài viết các bạn sẽ phân biệt được Led 7 đoạn Anode chungLed 7 đoạn Cathode chung. Để bắt đầu bài viết hôm nay, các bạn đừng ngần ngại Donate để ủng hộ mình, bằng cách nhấn vào link ở phía trên nhé.

LED 7 đoạn là gì?

LED 7 đoạn, hay còn được viết là “seven segment display”, bao gồm bảy đèn LED được sắp xếp theo hình số ‘8’. Mỗi đèn LED được gọi là một đoạn, vì khi được chiếu sáng, nó tạo thành một phần của chữ số. Đèn LED thứ tám thường được sử dụng để làm dấu thập phân.

Mỗi đoạn là một đèn LED và được đưa ra thành các chân tương ứng trên LED 7 đoạn. Các chân này được ký hiệu bằng các chữ cái ‘a’ đến ‘g’. Các chân LED còn lại được nối với nhau để tạo thành một chân chung duy nhất.

Mỗi đoạn có thể được bật hoặc tắt riêng lẻ bằng cách đặt chân tương ứng thành mức CAO hoặc mức THẤP, giống như một đèn LED thông thường. Bằng cách BẬT/TẮT các đoạn LED, các bạn có thể tạo hình ký tự số hoặc chữ cái.

Sơ đồ chân LED 7 đoạn

Sơ đồ chân của LED 7 đoạn có cấu tạo như hình bên dưới.

Các chân a, b, c, d, e, f, g và DP được nối với các chân Digital trên Arduino và có thể bật/tắt riêng rẻ từng đoạn.

COM (chân 3 và 8) được nối với nhau tạo thành một chân chung. Tùy thuộc vào loại Led 7 đoạn, chân này sẽ được kết nối với GND hoặc 5V.

So sánh LED 7 đoạn Anode chung với Led 7 đoạn Cathode chung

Có hai loại Led 7 đoạn được sử dụng phổ biến hiện nay: LED 7 đoạn Anode chungLed 7 đoạn Cathode chung.

Cấu tạo bên trong của cả hai loại gần như giống hệt nhau. Đối với led 7 thanh canot chung tất cả các chân cực âm (GND) của LED sẽ được nối với nhau, còn riêng đối với led 7 thanh anot chung các chân dương (VCC) của LED sẽ nối với nhau.

Cathode chung, chân COM sẽ được nối với GND và điện áp dương sẽ được cấp vào từng đoạn (a-g) để bật sáng.

Anode chung, chân COM sẽ được nối với VCC và điện âm sẽ được cấp vào từng đoạn (a-g) để bật sáng.

Cách hoạt động của LED 7 đoạn

Tùy vào từng trường hợp cụ thể mà bạn muốn hiển thị số hay là chữ, thì cần phải bật các đoạn LED cho phù hợp. Ví dụ, để hiển thị số 4, bốn đoạn đèn LED b, c, f và g phải được bật sáng. Tương tự, các chữ số khác nhau từ 0 đến 9 và các ký tự từ A đến F có thể được hiển thị trên màn hình LED 7 đoạn, như hình bên dưới.

Dưới đây là bảng chân lý (Truth-Table) sẽ cho các bạn biết đoạn nào cần phải được bật sáng để tạo ra các chữ số và ký tự tương ứng. Lưu ý, bảng chân lý cho Led 7 đoạn Anode chung hoàn toàn ngược lại với bảng chân lý Led 7 đoạn Cathode chung.

Cách tính chọn điện trở hạn dòng

Led 7 đoạn được tạo thành từ bảy đèn LED độc lập, mỗi đèn sẽ được lắp một điện trở hạn dòng để tránh làm hỏng các đoạn đèn LED.

Thông thường, đối với Led 7 đoạn màu đỏ, mức chiếu sáng lý tưởng trên mỗi đoạn LED là 15 mA; do đó, trên mạch điện có điện áp 5V, giá trị của điện trở sẽ xấp xỉ 200Ω (5V– 2V)/15mA. Hoặc các bạn có thể sử dụng các giá trị điện trở gần nhất như 220Ω, 330Ω.

Hình dưới đây là cách kết nối các điện trở hạn dòng với các phân đoạn đèn LED của màn hình.

Các linh kiện cần thiết cho dự án

TÊN LINH KIỆN SỐ LƯỢNG NƠI BÁN
Arduino Uno R3 1 Shopee | Cytron
Breadboard 1 Shopee | Cytron
Dây cắm 1 Shopee | Cytron
Điện trở 1 Shopee | Cytron
Led 7 đoạn 1 Shopee | Cytron

Hướng dẫn kết nối LED 7 đoạn với Arduino

Như vậy là các bạn đã hiểu cách thức hoạt động của Led 7 đoạn, bây giờ chúng ta sẽ kết nối với Arduino!

Mình sẽ sử dụng một breadboard và gắn LED 7 đoạn ở giữa như sơ đồ đấu nối bên dưới. Đối với dấu thập phân sẽ hướng xuống dưới, các chân là 1-5 ở phía dưới từ trái sang phải và 10-6 ở phía trên từ trái sang phải.

Chân COM nối với chân 5V của Arduino (nếu sử dụng Led Anode chung) hoặc nối với chân GND của Arduino (nếu các bạn sử dụng Led Cathode chung).

Bốn chân ở phía trên (b, a, f và g) được nối với các chân Digital từ 2 đến 5 của Arduino, còn lại ở phía dưới các chân (e, d, c và DP) được nối chân số từ 6 đến 9 của Arduino.

Mặc dù Led 7 đoạn có thể hoạt động mà không cần đến trở hạn dòng, nhưng để đảm bảo các đèn Led khỏi bị hư hỏng do quá dòng. Vì vậy, các bạn nên dùng điện trở 220Ω cho mỗi đoạn.

Led 7 đoạn Arduino Ghi chú
a 3 Thêm điện trở 220Ω
b 2 Thêm điện trở 220Ω
c 8 Thêm điện trở 220Ω
d 7 Thêm điện trở 220Ω
e 6 Thêm điện trở 220Ω
f 4 Thêm điện trở 220Ω
g 5 Thêm điện trở 220Ω
DP 9 Thêm điện trở 220Ω
COM 5V Đối với LED 7 đoạn Anode chung
COM GND Đối với LED 7 đoạn Cathode chung

Thư viện SevSeg

Có rất nhiều thư viện có sẵn để sử dụng cho Led 7 đoạn, nhưng một trong những thư viện phổ biến nhất là SevSeg. Thư viện này đã có từ lâu. Nó đơn giản và phù hợp dành cho người mới bắt đầu.

Để cài đặt thư viện, vào Sketch > Include Library > Manage Libraries…

Điền từ khoá “Seveg” và tải xuống phiên bản mới nhất.

Code led 7 đoạn 0 đến 9

Dưới đây sẽ là một đoạn code LED 7 đoạn 0 đến 9.

#include "SevSeg.h"
SevSeg sevseg;

void setup()
{
	//Set to 1 for single digit display
	byte numDigits = 1;

	//defines common pins while using multi-digit display. Left empty as we have a single digit display
	byte digitPins[] = {};

	//Defines arduino pin connections in order: A, B, C, D, E, F, G, DP
	byte segmentPins[] = {3, 2, 8, 7, 6, 4, 5, 9};
	bool resistorsOnSegments = true;

	//Initialize sevseg object. Uncomment second line if you use common cathode 7 segment
	sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins, resistorsOnSegments);
	//sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins, resistorsOnSegments);

	sevseg.setBrightness(90);
}

void loop()
{ 
   //Display numbers one by one with 2 seconds delay
   for(int i = 0; i < 10; i++)
   {
     sevseg.setNumber(i);
     sevseg.refreshDisplay(); 
     delay(2000);
   }
}

Giải thích Code

Code sử dụng thư viện SevSeg.h để điều khiển hiển thị của Led 7 đoạn và khai báo 1 đối tượng là sevseg.

// Include library
#include "SevSeg.h"

// Create object
SevSeg sevseg;

Trong hàm setup(), đầu tiên ta khai báo chân của LED 7 đoạn bằng biến numDigits. Trong trường hợp này, ta sử dụng đèn LED 7 đoạn đơn nên chỉ cần khai báo là 1.

// Number of digits in display
byte numDigits = 1;

Tiếp theo, khai báo các chân kết nối đến LED 7 đoạn thông qua mảng segmentPins. Mảng này chứa các giá trị của các chân kết nối đến LED 7 đoạn theo thứ tự: A, B, C, D, E, F, G và chân DP tương ứng với các chân 3, 2, 8, 7, 6, 4, 5, 9 của Arduino.

//defines common pins while using multi-digit display. Left empty as we have a single digit display
byte digitPins[] = {};

//Defines arduino pin connections in order: A, B, C, D, E, F, G, DP
byte segmentPins[] = {3, 2, 8, 7, 6, 4, 5, 9};
bool resistorsOnSegments = true;

Phần này, ta sẽ khai báo LED 7 đoạn đang sử dụng Anode chung hay Cathode chung thông qua hàm sevseg.begin(). Trong trường hợp này, đèn LED 7 đoạn sử dụng Anode chung được khai báo bằng cách comment dòng sevseg.begin(COMMON_CATHODE,...) và giữ lại dòng sevseg.begin(COMMON_ANODE,..).

//Initialize sevseg object. Uncomment second line if you use common cathode 7 segment
sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins, resistorsOnSegments);
//sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins, resistorsOnSegments);

Tăng độ sáng cho LED 7 đoạn bằng cách gọi hàm sevseg.setBrightness(90).

sevseg.setBrightness(90);

Trong hàm loop(), ta sử dụng vòng lặp for để hiển thị các số từ 0 đến 9 một cách tuần tự bằng cách gọi hàm sevseg.setNumber() để đặt giá trị số cần hiển thị trên LED 7 đoạn, sau đó gọi hàm sevseg.refreshDisplay() để cập nhật giá trị trên LED 7 đoạn và thực hiện hàm delay(2000) để giữ giá trị hiển thị trong 2 giây trước khi chuyển sang giá trị tiếp theo.

void loop()
{ 
   //Display numbers one by one with 2 seconds delay
   for(int i = 0; i < 10; i++)
   {
     sevseg.setNumber(i);
     sevseg.refreshDisplay(); 
     delay(2000);
   }
}

Code LED 7 đoạn 0000 đến 9999 (Update)

Kết luận

Tóm lại, qua bài viết này các bạn đã tìm hiểu về LED 7 đoạn là gì? và cách hiển thị nó bằng Arduino, từ đó phân biệt được sự khác biệt giữa LED 7 đoạn anode chung và cathode chung. Giúp các bạn có thêm nhiều ý tưởng hơn trong việc xây dựng các ứng dụng như hệ thống đếm tự động, đồng hồ, và nhiều dự án khác.

Bài viết liên quan

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments