Lập trình điều khiển nhiều led với board mạch Arduino

Đây là bài 7/17 bài của series môn học Lập trình Arduino cơ bản

1. Thiết kế mạch điều khiển nhiều led

Cách thiết kế mạch điều khiển nhiều led cũng giống như mạch điều khiển led đơn. Chỉ có điều có nhiều led hơn kết nối với nhiều chân của board Arduino hơn. Bên dưới là ví dụ mạch điều khiển giả lập trên Proteus gồm 1 board Arduino UNO, 8 điện trở 220Ω, 8 led.

Mạch điều khiển 8 led với Arduino trên Proteus

Lưu ý: Với 14 chân digital (từ 0 đên 13) thì một board mạch Arduino UNO chỉ có thể điều khiển tối đa 14 led (không tính các chân analog). Để điều khiển nhiều led hơn nữa, chúng ta có thể sử dụng thêm nhiều board mạch Arduino hoặc sử dụng IC HC595.

2. Viết chương trình điều khiển nhiều led chớp tắt cùng lúc

Cách 1 – Viết các lệnh điều khiển cho từng led

Đây là cách dễ nhất nhưng tốn công sức nhất với nhiều dòng code nhất.

void setup() {                
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
}

void loop() {
  digitalWrite(2, HIGH);
  digitalWrite(3, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  delay(1000);//Chờ 1000 mili giây = 1 giây
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
  digitalWrite(7, LOW);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  delay(1000);//Chờ 1000 mili giây = 1 giây
}

Cách 2 – Sử dụng vòng lặp for

Sử dụng vòng lặp for để làm ngắn gọn code ở cách 1.

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

void loop() {
  for(int i=2;i<=9;i++){
    digitalWrite(i, HIGH);
  }
  delay(1000);//Chờ 1000 mili giây = 1 giây
  for(int i=2;i<=9;i++){
    digitalWrite(i, LOW);
  }
  delay(1000);//Chờ 1000 mili giây = 1 giây
}

Cách 3 – Sử dụng mảng

Sử dụng mảng để lưu các chân của led kết nối với board mạch Arduino. Rồi dùng vòng lặp for để duyệt mảng và điều khiển led chớp tắt.

int arr_led[8]={2, 3, 4, 5, 6, 7, 8, 9};
void setup() {                
  for(int i=0;i<=9;i++){
    pinMode(arr_led[i], OUTPUT);
  }
}

void loop() {
  for(int i=0;i<8;i++){
    digitalWrite(arr_led[i], HIGH);
  }
  delay(1000);//Chờ 1000 mili giây = 1 giây
  for(int i=0;i<8;i++){
    digitalWrite(arr_led[i], LOW);
  }
  delay(1000);//Chờ 1000 mili giây = 1 giây
}

3. Bài tập

Bài tập 1: Thiết kế mạch gồm 10 đèn LED kết nối với Arduino. Lập trình:

– 10 đèn sáng tắt cùng lúc

– Lần lượt chớp tắt các đèn 1->10->1->10…

Bài tập 2: Thiết kế mạch gồm 10 đèn LED kết nối với Arduino. Lập trình:

– Đèn 1->10 sáng, đèn 1->10 tắt, lặp đi lặp lại như thế

– Lần lượt chớp tắt ngẫu nhiên 1 đèn LED bất kỳ

5/5 - (2 bình chọn)
Bài trước và bài sau trong môn học<< Lập trình điều khiển led đơn với board mạch ArduinoLập trình điều khiển led bằng nút bấm với board mạch Arduino >>
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.