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útdelay(50); // Chống dội phímwhile (digitalRead(buttonPin) == LOW); // Đợi nút nhả raledState = !ledState; // Đảo trạng thái LED
………………………………..
Chọn mua và thanh toán để tải code đầy đủ hơn
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 (truenếu sáng,falsenế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
buttonPinnố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.