Giới thiệu
Trong bài viết này, chúng ta sẽ tìm hiểu cách điều khiển LED bằng Arduino. Đây là một bài học cơ bản dành cho người mới bắt đầu làm quen với lập trình nhúng.
- Chuẩn bị
Phần cứng cần có:
1 x Board Arduino (Uno, Mega, Nano,…)
1 x LED
1 x Điện trở 220Ω
1 x Nút nhấn
Dây cắm
Phần mềm:
Arduino IDE
- Sơ đồ nguyên lý
LED được nối với một chân Digital của Arduino thông qua điện trở 220Ω để giới hạn dòng điện. Chúng ta sẽ sử dụng chân D13 của Arduino để điều khiển LED và chân D2 để nhận tín hiệu từ nút nhấn.
- Code cơ bản (Miễn phí)
Dưới đây là đoạn code cơ bản giúp bạn bật/tắt LED liên tục:
void setup() {
pinMode(13, OUTPUT); // Cấu hình chân 13 là OUTPUT
}
void loop() {
digitalWrite(13, HIGH); // Bật LED
delay(1000); // Chờ 1 giây
digitalWrite(13, LOW); // Tắt LED
delay(1000); // Chờ 1 giây
}
Giải thích chi tiết đoạn code:
1. Hàm setup()
void setup() {
pinMode(13, OUTPUT); // Cấu hình chân 13 là OUTPUT
}
setup()
là một hàm chạy một lần duy nhất khi Arduino khởi động.pinMode(13, OUTPUT);
dùng để thiết lập chân số 13 của Arduino làm chân xuất tín hiệu (OUTPUT).- Khi một chân được đặt là OUTPUT, nó có thể gửi tín hiệu HIGH (5V) hoặc LOW (0V) để điều khiển các linh kiện bên ngoài, chẳng hạn như LED.
2. Hàm loop()
void loop() {
digitalWrite(13, HIGH); // Bật LED
delay(1000); // Chờ 1 giây
digitalWrite(13, LOW); // Tắt LED
delay(1000); // Chờ 1 giây
}
- Hàm
loop()
chạy liên tục lặp lại khi Arduino hoạt động. digitalWrite(13, HIGH);
→ Đặt chân số 13 lên mức HIGH (5V) → LED sáng.delay(1000);
→ Dừng chương trình trong 1000 mili-giây (1 giây).digitalWrite(13, LOW);
→ Đặt chân số 13 xuống mức LOW (0V) → LED tắt.delay(1000);
→ Dừng chương trình trong 1 giây, sau đó vòng lặp tiếp tục chạy lại.
📥 Tải xuống mã nguồn
📌 Kết quả hoạt động:
- LED sẽ bật sáng trong 1 giây, sau đó tắt trong 1 giây, và quá trình này lặp đi lặp lại mãi mãi.
Nếu bạn muốn chỉnh tốc độ nhấp nháy, có thể thay đổi giá trị delay(1000);
thành giá trị nhỏ hơn (ví dụ delay(500);
để LED nhấp nháy nhanh hơn).
- Code nâng cao (Bán)
Trong phiên bản nâng cao, chúng ta sẽ sử dụng nút nhấn để điều khiển LED thủ công, đồng thời thêm hiệu ứng nhấp nháy linh hoạt.
Code nâng cao:
const int ledPin = 13;
const int buttonPin = 2;
bool ledState = false;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
if (digitalRead(buttonPin) == LOW) { // Nếu nhấn nút
delay(50); // Chống dội phím
while (digitalRead(buttonPin) == LOW); // Đợi nút nhả ra
ledState = !ledState; // Đảo trạng thái LED
if (ledState) {
for (int i = 0; i < 3; i++) { // Hiệu ứng nhấp nháy
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
delay(200);
}
digitalWrite(ledPin, HIGH); // Bật LED
} else {
digitalWrite(ledPin, LOW); // Tắt LED
}
}
}
Tính năng nâng cao:
Nhấn nút để bật/tắt LED.
Hiệu ứng nhấp nháy khi bật LED.
📥 Tải xuống mã nguồn
- Kết luận
Đây là bài học đầu tiên giúp bạn hiểu cách điều khiển LED với Arduino. Trong các bài viết tiếp theo, chúng ta sẽ khám phá nhiều chủ đề thú vị hơn như điều khiển động cơ, giao tiếp module RF, và ứng dụng IoT.