Điều khiển LED bằng Arduino – Phần 1

0
2017
Điều khiển LED dùng Arduino

Trong bài hướng dẫn này, tôi sẽ hướng dẫn cho các bạn cách điều khiển LED bằng Arduino. Đây là một dự án khá đơn giản dành cho người mới bắt đầu tìm hiểu Arduino. Khi đã thành thạo với việc thiết kế mạch và lập trình bạn sẽ được hướng dẫn để tiếp cận với các dự án khó hơn qua các bài hướng dẫn của tôi trên website này.

Trước tiên, tôi sẽ hướng dẫn cho bạn cách bật và tắt đèn LED trên board mạch của Arduino. Sau đó, tôi sẽ chỉ cho bạn cách bật và tắt đèn LED được kết nối với một trong các chân số của Arduino. Tôi sẽ giải thích cách thay đổi tốc độ nhấp nháy của đèn LED và cách thay đổi chân cấp nguồn cho đèn LED. Cuối cùng, tôi sẽ cho bạn biết làm thế nào để điều khiển được nhiều đèn LED. Trước khi bắt đầu, bạn nên cài đặt phần mềm Arduino IDE trên máy tính của mình.

Tín hiệu điện

Arduino giao tiếp với các mô đun và cảm biến bằng cách bật và tắt dòng điện. Nó rất giống với số 1 và số 0 trong mã nhị phân. Khi dòng điện được bật, nó được gọi là “tín hiệu CAO (HIGH)”. Mức cao này là tương tự với “mức 1” trong mã nhị phân. Khi dòng điện được tắt, đó là “tín hiệu THẤP (LOW)”, tương tự như mức 0 không trong mã nhị phân. Khoảng thời gian dòng điện duy trì bật (ON) hoặc tắt (OFF) có thể được thay đổi từ một micro giây đến vài phút.

Điều khiển LED bằng Arduino

Để bật đèn LED, Arduino cần gửi tín hiệu mức CAO tới một trong số các chân của nó. Để tắt đèn LED, nó cần gửi tín hiệu mức THẤP tới chân đó. Bạn có thể làm cho đèn LED nhấp nháy bằng cách thay đổi độ dài của trạng thái CAO và THẤP.

Arduino có một đèn LED gắn trên bo mạch và được kết nối với chân số 13. Đèn LED này có chữ “L” bên cạnh nó:

Để làm cho đèn LED này nhấp nháy, bạn nạp chương trình “Blink” lên board Arduino của bạn:

1  void setup() {
2       pinMode(13, OUTPUT);
3  }
4  void loop() {
5       digitalWrite(13, HIGH);
6       delay(1000);
7       digitalWrite(13, LOW);
8       delay(1000);
9  }

Đèn LED sẽ nhấp nháy bật và tắt với tốc độ 1000 mili giây (1000 mili giây = 1 giây).

Hàm delay () trên dòng 6 báo cho Arduino giữ tín hiệu HIGH tại chân 13 trong 1000 ms. Hàm delay () trên dòng 8 cho biết Arduino giữ tín hiệu LOW ở pin 13 trong 1000 ms. Bạn có thể thay đổi tốc độ nhấp nháy bằng cách thay đổi số bên trong dấu ngoặc đơn của hàm delay ().

Điều khiển LED bên ngoài

Đèn LED bên ngoài hoặc bất kỳ mô-đun nào khác có thể được điều khiển theo cách tương tự.

Đèn LED cần phải có một điện trở hạn dòng mắc nối tiếp với nó. Nếu không, dòng điện quá lớn sẽ nhanh chóng làm hỏng đèn LED. Điện trở hạn dòng cho đèn LED có giá trị khoảng vài trăm ohm. Điện trở giá trị nhỏ cho phép dòng điện chạy qua nhiều hơn, làm cho đèn LED sáng hơn. Điện trở giá trị lớn sẽ hạn chế dòng chảy của dòng điện, làm cho đèn LED mờ đi.

Ngoài ra, hầu hết các đèn LED đều có cực, có nghĩa là chúng cần được kết nối đúng cách. Thông thường, chân ngắn nhất của đèn LED được nối đất (GND).

Nếu bạn kết nối đèn LED với chân 13 như trong hình dưới đây, bạn có thể sử dụng chương trình mà tôi đã dùng ở trên để bật và tắt đèn LED.

Thay đổi chân điều khiển LED

Nếu bạn muốn sử dụng một chân khác để điều khiển đèn LED thì việc thay đổi chân thật dễ dàng. Ví dụ: giả sử bạn muốn sử dụng chân 8 thay vì chân 13. Trước tiên, hãy di chuyển dây tín hiệu từ chân 13 sang chân 8.

Mạch điều khiển đèn led dùng Arduino

Bây giờ bạn sẽ cần phải chỉnh sửa một dòng code trong chương trình để Arduino biết chân nào sử dụng làm chân đầu ra. Điều đó được thực hiện trên dòng 2, với câu lệnh:

pinMode(13, OUTPUT);

Để sử dụng pin 8, bạn chỉ cần thay đổi số 13 thành số 8:

pinMode(8, OUTPUT);

Tiếp theo, bạn sẽ cần phải thay đổi code để cho Arduino biết các chân nào sẽ nhận được tín hiệu ngõ ra CAO và THẤP. Điều đó được thực hiện ở bất kỳ nơi nào có hàm digitalWrite (). Trong chương trình trên, ở dòng 5 và dòng 7 có sử dụng lệnh digitalWrite:

digitalWrite(13, HIGH);

digitalWrite(13, LOW);

Để chỉ định chân 8 sẽ nhận được tín hiệu HIGH và LOW, bạn chỉ cần thay đổi số 13 thành 8:

digitalWrite(8, HIGH);

digitalWrite(8, LOW);

Chương trình sau khi chỉnh sửa sẽ trông giống như sau:

1  void setup() {
2         pinMode(8, OUTPUT);
3  }
4  void loop() {
5        digitalWrite(8, HIGH);
6        delay(1000);
7        digitalWrite(8, LOW);
8        delay(1000);
9  }
10
Sau khi nạp chương trình vào Arduino, đèn LED sẽ nhấp nháy giống như khi nó được kết nối với pin 13.

Điều khiển nhiều LED

Bạn có thể điều khiển nhiều đèn LED tùy ý khi bạn có đủ số chân. Bây giờ, chúng ta sẽ làm cho các đèn LED bên ngoài nhấp nháy dọc theo nhấp nháy dọc theo đèn LED trên board mạch để minh họa. Tất cả những gì chúng ta cần làm là lặp lại code cho chân 8 và thay đổi số chân thành chân 13.

Dưới đây là chương trình mẫu điều khiển 2 đèn LED:

1  void setup() {
2        pinMode(8, OUTPUT);
3        pinMode(13, OUTPUT);
4  }
5  void loop() {
6       digitalWrite(8, HIGH);
7       delay(1000);
8       digitalWrite(13, HIGH);
9       delay(1000);
10     digitalWrite(8, LOW);
11     delay(1000);
12     digitalWrite(13, LOW);
13     delay(1000);
14  }
15

Bạn sẽ thấy cả hai đèn LED nhấp nháy. Nhưng chúng sẽ không nhấp nháy đồng thời mà chúng sẽ nhấp nháy luân phiên.

Arduino thực hiện các lệnh trong chương trình từ trên xuống dưới. Nó đọc từng dòng và thực hiện nhiệm vụ trước khi chuyển sang dòng tiếp theo. Một khi nó đã đọc qua đến cuối, nó lặp lại dòng 6 và bắt đầu lại.

Trong chương trình trên, code được thực thi theo thứ tự sau:

  1. Tín hiệu HIGH được gửi tới chân 8
  2. Đợi 1000 mili giây
  3. Tín hiệu HIGH được gửi tới chân 13
  4. Đợi 1000 mili giây
  5. Tín hiệu LOW gửi đến chân 8
  6. Đợi 1000 mili giây
  7. Tín hiệu LOW được gửi tới ghim 13
  8. Đợi 1000 mili giây
  9. Quay lại bước 1

Để cả hai đèn LED nhấp nháy cùng một lúc, chúng tôi cần phải loại bỏ độ trễ (delay) giữa tín hiệu HIGH và LOW của mỗi chân, như được thấy trong chương trình này:

1  void setup() {
2        pinMode(8, OUTPUT);
3        pinMode(13, OUTPUT);
4  }
5  void loop() {
6      digitalWrite(8, HIGH);
7      digitalWrite(13, HIGH);
8      delay(1000);
9      digitalWrite(8, LOW);
10    digitalWrite(13, LOW);
11    delay(1000);
12  }
13 
Bây giờ thì cả hai đèn LED nên bật và tắt cùng một lúc. Các nhiệm vụ được thực thi theo thứ tự sau:
  1. Tín hiệu HIGH được gửi tới chân 8
  2. Tín hiệu HIGH được gửi tới chân 13
  3. Đợi 1000 mili giây
  4. Tín hiệu LOW gửi đến chân 8
  5. Tín hiệu LOW được gửi tới chân 13
  6. Đợi 1000 mili giây
  7. Quay lại bước 1

Bây giờ bạn đã biết cách điều khiển đèn LED bằng Arduino rồi phải không? Trong phần 2 của loạt bài này, nơi tôi sẽ chỉ cho bạn cách sử dụng điện trở phụ thuộc ánh sáng (quang trở) để điều khiển tốc độ nhấp nháy của đèn LED nhấp nháy và cách điều khiển âm thanh ra loa.

Nếu bạn có bất kỳ câu hỏi nào hoặc gặp khó khăn khi thực hiện dự án này, hãy để lại bình luận bên dưới và tôi sẽ cố gắng giúp đỡ và trả lời các câu hỏi để giúp bạn hoàn thành dự án. 

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây