Ở bài trước, chúng ta đã tìm hiểu sơ lược về Arduino và các thông tin xoay quanh các bo mạch này. Song song với đó là một vài khái niệm về lập trình điều khiển. Trong bài viết này, chúng ta sẽ tìm hiểu về đèn LED và xem cách điều khiển chúng có dễ hay không nhé !
Trước khi bước vào bài học ngày hôm nay, chúng ta cần chuẩn bị một vài thứ:
1 board Arduino UNO R3.
1 dây cáp USB để kết nối board với máy tính.
1 Máy tính/Laptop để viết code.
7- 10 bóng LED (các bạn cứ ra bảo với người bán loại LED siêu sáng 5mm nhé)
1 breadboard.
Dây breadboard (đực-đực, đực-cái, cái-cái)
Điện trở 220 Ohm.
Phần mềm lập trình Arduino - Arduino IDE (tìm hiểu thêm)
Muốn điều khiển LED thì trước tiên phải tìm hiểu cấu tạo và nguyên lí hoạt động của nó như thế nào trước đúng không nào?
LED hay còn gọi là đi ốt phát quang (Light-Emitting-Diode). Như vậy về bản chất thì LED là một đi ốt, nó được chế tạo từ vật liệu bán dẫn, cụ thể là một số hợp chất có nguồn gốc từ Gallium (GaN, GaP),... Đèn LED được cấu tạo với 2 lớp bán dẫn được pha với một số tạp chất khác để tạo ra 2 vùng bán dẫn khác nhau là vùng P và vùng N.
Nguồn ảnh: Chemistry Cartoon
Nguồn ảnh: thegioiic
Vùng N có thừa các electron có tích điện âm và vùng P lại bị thiếu các electron nên tạo ra các lỗ trống mang điện dương. Dòng điện sẽ chạy từ Anode (vùng P) đến Cathode (vùng N) và khi các electron lắp đầy các lỗ trống thì chúng sẽ giải phóng năng lượng và tạo nên ánh sáng khả kiến.
LƯU Ý: Chân dài của LED là chân DƯƠNG (+)
Nguồn ảnh: arduino.vn
Các bạn lắp mạch theo hình vẽ như này nhé. Dùng dây loại đực-đực để kết nối các thành phần. Nếu các bạn vẫn chưa hiểu tại sao lại cắm LED, điện trở và dây như thế thì hãy xem qua cấu tạo của breadboard ở hình bên dưới nhé. Khu vực trung tâm thì các lỗ sẽ được nối với nhau theo hàng (đen) và dọc 2 bên sẽ được nối dọc theo cột (xanh và đỏ). Các bạn hãy lưu ý khi sử dụng test board nhé, tránh gây hư hỏng linh kiện và tốn thời gian vào những lỗi sai vặt.
Nguồn ảnh: TDH Team
Tiếp theo đó thì bạn cần lưu ý chân dương và chân âm của LED, như đã nói thì chân dài sẽ là chân dương. Bạn nối chân dương với 1 đầu của trở và đầu còn lại của trở sẽ nối với chân số 13 của Arduinio. Chân âm của LED sẽ nối với chân GND (Ground) của Arduino. Như vậy, bạn đã hoàn thành việc lắp một mạch điều khiển LED đơn giản. Còn bây giờ chúng ta sẽ bước tới bước tiếp theo - lập trình điều khiển đèn LED.
Đầu tiên, bạn hãy khởi động phần mềm lập trình Arduino IDE. Ở phần Text Box (Text Editor) bạn sẽ thấy 2 phần chính của một đoạn mã lập trình (code) thường gặp void setup() và void loop().
Trước hết, để điều khiển một LED thì ta phải cấu hình 1 chân (pin) của Arduino như là một OUTPUT. Ở đây ta sẽ dùng đến cú pháp:
pinMode(pin, MODE);
Để giải thích rõ hơn thì pinMode là một cú pháp dùng để cấu hình một pin dưới vai trò là OUTPUT hoặc INPUT. Như các bạn thấy thì trong cú pháp này, sẽ có 2 thứ cần quan tâm là vị trí của pin và vai trò mà các bạn muốn thiết lập cho chân đó. Ví dụ:
pinMode(13, OUTPUT);
Và trong bài ngày hôm nay thì chúng ta sẽ sử dụng chân Digital 13 để điều khiển LED nhé. Một điều nữa mà bạn cần lưu ý đó chính là vị trí mà bạn sẽ viết cú pháp này chính là trong void setup() .
Sau khi bạn đã hoàn thành việc cấu hình cho chân Digital 13 thì tiếp theo sẽ là bật con LED đó lên phải không nào? Để làm được việc này thì bạn phải dùng đến câu lệnh digitalWrite(). Câu lệnh này sẽ điều khiển được chân Digital ở 2 trạng thái là HIGH và LOW. Ví dụ:
digitalWrite(13, HIGH);
Ở dòng lệnh trên, bạn đã cấp cho chân digital 13 một điện thế là 5V. Lúc này dòng điện sẽ đi qua trở và qua đèn LED. Muốn tắt nó thì bạn dùng lệnh:
digitalWrite(13, LOW);
Nhưng dòng lệnh chỉ xảy ra trong tích tắc thôi, để quan sát thì mình phải dừng chương trình lại trong một khoảng thời gian phù hợp. Lúc này thì hàm delay sẽ phát huy tác dụng. Hàm delay sẽ dừng chương trình lại trong thời gian được tính theo mili giây. Ví dụ:
delay(1000);
Các bạn hãy đọc lại một lần nữa phần giải thích và hãy code thử, biên dịch (Compile) và nạp chương trình (Upload) vào board mạch Arduino nhé! Sau đó thì kiểm tra lại với phần code mẫu bên dưới:
/*
Blink
*/
// chân digital 13 sẽ được gán vào một biến 'led', biến 'led' này có kiễu dữ liệu int và có giá trị 13
int led = 13;
// Hàm setup sẽ chạy 1 lần duy nhất lúc khởi động chương trình thôi nhé
void setup() {
pinMode(led, OUTPUT);
}
// Hàm loop() sẽ chạy mãi sau khi đã hoàn thành hàm setup()
void loop() {
digitalWrite(led, HIGH); // LED on
delay(1000); // LED on 1s
digitalWrite(led, LOW); // LED off
delay(1000); // LED off 1s
}