Search…

Điện Tử Cơ Bản Với Arduino – LED 7 Đoạn

10/08/20205 min read
Giới thiệu LED 7 đoạn và code demo sử dụng LED 7 đoạn với Arduino.

LED 7 đoạn

LED 7 đoạn.
LED 7 đoạn

LED 7 đoạn thường được dùng để hiển thị số, về cấu tạo LED 7 đoạn là các đèn LED được lắp theo thứ tự và hình ảnh giống số 8. Về phương thức hoạt động tương tự như LED bình thường.

Mỗi đoạn tương ứng một đèn LED nên cũng có cực âm và cực dương. Tuy nhiên có 2 loại đèn LED:

  • Anode các chân LED có chung 1 chân cực dương.
  • Cathode các chân LED có chung 1 chân cực âm.

Sử dụng LED 7 đoạn với Arduino

Chuẩn bị

  • 1 x LED 7 đoạn loại chung Anode
  • Breadboard
  • Dây cắm các loại
  • Arduino Uno R3 hoặc tương đương

Hiện thực

Cũng như cách hiện thực LED chớp tắt, chỉ quan tâm các giá trị cho chân đó là HIGHLOW. Để biểu diễn một thông tin ra ngoài chỉ có cách bật đèn LED, tuy nhiên có thể sắp xếp thứ tự các đèn LED để thành ký tự.

Thử nghiệm

Trước khi hiện thực, thử lắp đặt các linh kiện như sau: nối chân 5V vào các chân A của LED 7 đoạn nhưng thông qua 1 con trở 500Ω.

Lắp đặt thử nghiệm LED 7 đoạn

Cấu trúc của LED 7 đoạn

Cấu trúc LED 7 đoạn.
Cấu trúc LED 7 đoạn
  • Từ số 1 → 7 tượng trưng cho chân cắm tương đương với vị trí các đèn LED ở hình kế bên.
  • Dấu . tượng cho dấu chấm trên đèn LED.
  • Chân A tượng trưng cho chân nguồn của đèn. Tùy vào đây là đèn LED gì mà chân A khác nhau:
    • Đèn LED Anode: chân A được nối vào VCC.
    • Đèn LED Cathode: chân A được nối vào GND.

Do LED 7 đoạn này là Anode, để cho một trong các đèn LED của “đoạn" đó của LED 7 đoạn sáng, Nối chân của "đoạn" LED đó với GND. Ví dụ muốn để đoạn số 1 của LED 7 đoạn sáng thì cắm chân số 1 như hình trên.

Kết quả sẽ được như hình dưới:

Lý do sử dụng đèn Anode

Vì LED 7 đoạn cần nguồn nhỏ tức ~ < 3V, trong khi đó nguồn mà Arduino cung cấp là 5V. Vì thế cần hạ áp dòng trước khi đưa vào đèn, tuy nhiên nếu sử dụng đèn Cathode thì phải nối nguồn 5V cho từng chân đèn LED dẫn đến việc tốn nhiều điện trở. Nếu sử dụng Anode, chỉ cần sử dụng một điện trở để hạ nguồn cho toàn bộ LED.

Code cài đặt

Sau kết quả kiểm tra trên, các đèn của LED 7 đoạn hoạt động dựa trên nguyên lý tắt mở.

Cắm các chân theo một thứ tự để dễ kiểm soát.

Ở đây cắm các chân 1 → 7 của đèn theo thứ tự từ chân 3 → 10 và tạm thời không sử dụng chân nối với LED thể hiện kí tự ..

  • Để tắt một đoạn LED bất kì, đưa điện áp nối với chân đó lên HIGH.
  • Để mở một đoạn LED bất kì, hạ điện áp nối với chân đó về LOW
Sơ đồ lắp mạch cho LED 7 đoạn và Arduino.
Sơ đồ lắp mạch

Để bật đèn LED 7 đoạn hiển thị số 2, sử dụng đoạn code:

digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);

Tương tự như các chân còn lại, tổ chức code như sau:

void Print_7SEG(byte number);
void Clear();
void setup() {
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
}

void loop() {
  for (int i = 0; i<10; i++)
  {
    Clear();
    Print_7SEG(i);
    delay(500);
  }
}
void Clear() { digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, HIGH); digitalWrite(9, HIGH); }
void Print_7SEG(byte number) { switch (number) { case 0: digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); digitalWrite(9, HIGH); break; case 1: digitalWrite(3, HIGH); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, HIGH); digitalWrite(9, HIGH); break; case 2: digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, HIGH); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, HIGH); digitalWrite(9, LOW); break; case 3: digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, HIGH); digitalWrite(8, HIGH); digitalWrite(9, LOW); break; case 4: digitalWrite(3, HIGH); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, LOW); digitalWrite(9, LOW); break; case 5: digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, HIGH); digitalWrite(8, LOW); digitalWrite(9, LOW); break; case 6: digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); digitalWrite(9, LOW); break; case 7: digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, HIGH); digitalWrite(9, HIGH); break; case 8: digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); digitalWrite(9, LOW); break; case 9: digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, HIGH); digitalWrite(8, LOW); digitalWrite(9, LOW); break; } }

Viết hàm Print_7SEG để in giá trị ra LED 7 đoạn tùy vào giá trị truyền vào byte number, hàm Clear() để đưa tất cả các chân về trạng thái tắt. Trong loop() ta cho lặp từ 0 → 9 và lần lượt đưa các giá trị đó vào hàm Print_7SEG.

Nạp code vào Arduino và chạy thử

LED 7 đoạn với Arduino.
IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024