Bài 15: Sơ lược về LED 7 Đoạn ứng dụng làm bộ đếm sản phẩm sử dụng Arduino

Bài 15: Sơ lược về LED 7 Đoạn ứng dụng làm bộ đếm sản phẩm sử dụng Arduino

Trong nội dung bài viết ngày hôm nay mình sẽ ra mắt cho những bạn về LED 7 đoạn một linh phụ kiện được sử dụng thông dụng dùng để hiển thỉ những thông số kỹ thuật ( vd : đồng hồ đeo tay, những bộ đếm loại sản phẩm … ). Qua đó mình sẽ hướng dẫn những bạn sử dụng LED 7 đoạn để hiển thị những giá trị từ 0 – 9 .

Sơ lược về LED 7 đoạn

Led 7 Đoạn gồm 7 đoạn LED được sắp xếp với nhau, và được đánh dấu theo ký tự a cho đến g, chân còn lại được nối chung với nhau. Dựa vào cách kết nối chung mà chia thành hai loại đó là Anot chung và Catot chung. Ngoài LED 7 đoạn này còn có đoạn thứ 8,được đánh nhãn là DP tượng trưng cho dấu chấm.


LED 7 đoạn : Anode chung

Sơ đồ đấu nối

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

Tên linh kiện
Số lượng
Arduino Uno R3
1

Dây cắm
10

Breadboard
1

LED 7 đoạn
1

Trở 220R
8

Code 1: LED 7 Đoạn

void setup() {
for(int pin = 2 ; pin <= 9 ; pin++){
 pinMode(pin, OUTPUT);
 digitalWrite(pin, HIGH);
 }
}
void loop() {
  // hiển thị số 0
  int n0[8]={0,0,0,1,0,0,0,1};
  for(int pin = 2; pin <= 9 ; pin++){
    digitalWrite(pin,n0[pin-2]);
  }
  delay(500);

  // hiển thị số 1
  int n1[8]={0,1,1,1,1,1,0,1};
  for(int pin = 2; pin <= 9 ; pin++){
    digitalWrite(pin,n1[pin-2]);
  }
  delay(500);

  // hiển thị số 2
  int n2[8]={0,0,1,0,0,0,1,1};
  for(int pin = 2; pin <= 9 ; pin++){
    digitalWrite(pin,n2[pin-2]);
  }
  delay(500);

  // hiển thị số 3
  int n3[8]={0,0,1,0,1,0,0,1};
  for(int pin = 2; pin <= 9 ; pin++){
    digitalWrite(pin,n3[pin-2]);
  }
  delay(500);

  // hiển thị số 4
  int n4[8]={0,1,0,0,1,1,0,1};
  for(int pin = 2; pin <= 9 ; pin++){
    digitalWrite(pin,n4[pin-2]);
  }
  delay(500);

  // hiển thị số 5
  int n5[8]={1,0,0,0,1,0,0,1};
  for(int pin = 2; pin <= 9 ; pin++){
    digitalWrite(pin,n5[pin-2]);
  }
  delay(500);

  // hiển thị số 6
  int n6[8]={1,0,0,0,0,0,0,1};
  for(int pin = 2; pin <= 9 ; pin++){
    digitalWrite(pin,n6[pin-2]);
  }
  delay(500);

  // hiển thị số 7
  int n7[8]={0,0,1,1,1,1,0,1};
  for(int pin = 2; pin <= 9 ; pin++){
    digitalWrite(pin,n7[pin-2]);
  }
  delay(500);

  // hiển thị số 8
  int n8[8]={0,0,0,0,0,0,0,1};
  for(int pin = 2; pin <= 9 ; pin++){
    digitalWrite(pin,n8[pin-2]);
  }
  delay(500);

  // hiển thị số 9
  int n9[8]={0,0,0,0,1,1,0,1};
  for(int pin = 2; pin <= 9 ; pin++){
    digitalWrite(pin,n9[pin-2]);
  }
  delay(500);
}

Giải thích code 1

Bước tiên phong tất cả chúng ta khai báo chân liên kết với LED 7 đoạn, những đoạn b, a, f, g, e, d, c, DP tương ứng với những chân Digital từ 2 đến 9 .

for(int pin = 2 ; pin <= 9 ; pin++){
 pinMode(pin, OUTPUT);
 digitalWrite(pin, HIGH);
 }

Trong phần này mình sẽ ra mắt cho những bạn về một khái niệm mảng .
Mảng là một tập gồm nhiều thành phần có cùng kiểu tài liệu. Ví dụ mảng kiểu int sẽ gồm nhiều thành phần có cùng kiểu int .

Ở đây chúng ta khai báo kiểu int và đặt tên là n0 và gán 8 giá trị.

int n0[8]={0,0,0,1,0,0,0,1};

Vòng lặp for triển khai như sau : Ví dụ để hiển thị số 0 :
pin = 2 – > n0 [ 0 ] – > digitalWrite ( 2,0 ) – > b segment on
pin = 3 – > n0 [ 0 ] – > digitalWrite ( 3,0 ) – > a segment on
pin = 4 – > n0 [ 0 ] – > digitalWrite ( 4,0 ) – > f segment on
pin = 5 – > n0 [ 0 ] – > digitalWrite ( 5,1 ) – > g segment off
pin = 6 – > n0 [ 0 ] – > digitalWrite ( 6,0 ) – > e segment on
pin = 7 – > n0 [ 0 ] – > digitalWrite ( 7,0 ) – > d segment on

pin= 8 –> n0[0] –> digitalWrite(8,0) –> c segment on

pin = 9 – > n0 [ 0 ] – > digitalWrite ( 9,1 ) – > DP segment off

for(int pin = 2; pin <= 9 ; pin++){
    digitalWrite(pin,n0[pin-2]);
  }

Code 2: LED 7 Đoạn

int number[10][8] = {
  {0,0,0,1,0,0,0,1},
  {0,1,1,1,1,1,0,1},
  {0,0,1,0,0,0,1,1},
  {0,0,1,0,1,0,0,1},
  {0,1,0,0,1,1,0,1},
  {1,0,0,0,1,0,0,1},
  {1,0,0,0,0,0,0,1},
  {0,0,1,1,1,1,0,1},
  {0,0,0,0,0,0,0,1},
  {0,0,0,0,1,1,0,1}
 };

void numberShow(int i){
  for(int pin = 2; pin <= 9 ; pin++){
    digitalWrite(pin, number[i][pin - 2]);
  }
}

void setup(){
 for(int pin = 2 ; pin <= 9 ; pin++){
 pinMode(pin, OUTPUT);
 digitalWrite(pin, HIGH);
 }
}

void loop(){
 for(int j = 0; j <= 9 ; j++){
  numberShow(j);
  delay(500);
 }
}

Giải thích code 2:

Mảng 1 chiều được cấu thành với những thành phần và mảng 2 chiều được cấu thành với những mảng một chiều .

Ở đây sẽ có 10 mảng và mỗi mảng sẽ có 8 thành phần tương ứng với những giá trị của những đoạn từ b đến DP. Trong Sketch này tất cả chúng ta sẽ thao tác 10 mảng một chiều với nhau từ mảng 2 chiều .

Alternate Text Gọi ngay