Giải thích chi tiết đoạn code nâng cao:
1. Khai báo biến toàn cục
ledPin
: Chân số 13 của Arduino, nơi kết nối LED.buttonPin
: Chân số 2 của Arduino, nơi kết nối nút nhấn.ledState
: Biến trạng thái LED (true
nếu sáng,false
nếu tắt).
2. Hàm setup()
pinMode(ledPin, OUTPUT);
→ Thiết lập chân 13 làm OUTPUT để điều khiển LED.pinMode(buttonPin, INPUT_PULLUP);
→ Thiết lập chân 2 làm INPUT_PULLUP để đọc trạng thái nút nhấn.- INPUT_PULLUP dùng điện trở nội pull-up → Khi không nhấn, chân
buttonPin
ở mức HIGH. - Khi nhấn, chân
buttonPin
nối GND → chuyển sang mức LOW.
- INPUT_PULLUP dùng điện trở nội pull-up → Khi không nhấn, chân
3. Hàm loop()
– Điều khiển LED khi nhấn nút
digitalRead(buttonPin) == LOW
→ Kiểm tra nếu nút nhấn bị nhấn.delay(50);
→ Đợi 50ms để chống dội phím (giảm nhiễu từ nút nhấn).while (digitalRead(buttonPin) == LOW);
→ Đợi đến khi nút nhả ra mới tiếp tục.
4. Đảo trạng thái LED
- Nếu LED đang tắt,
ledState = true
→ bật LED. - Nếu LED đang bật,
ledState = false
→ tắt LED.
5. Bật LED với hiệu ứng nhấp nháy
- Khi
ledState == true
(LED bật):- LED nhấp nháy 3 lần trước khi bật sáng liên tục.
6. Tắt LED khi nút nhấn lần nữa
- Khi
ledState == false
, LED tắt hoàn toàn.
📌 Kết quả hoạt động:
- Bấm nút lần đầu → LED nhấp nháy 3 lần, sau đó bật sáng liên tục.
- Bấm nút lần thứ hai → LED tắt.
- Tiếp tục nhấn nút → Lặp lại quá trình trên.
Bộ code này giúp tạo hiệu ứng đẹp hơn thay vì chỉ bật/tắt đơn giản. 🚀
Đánh giá
Chưa có đánh giá nào.