Cơ bảnESP32 DevKitC V4Nút nhấnLEDChống dội
Nút nhấn đảo trạng thái LED
Mỗi lần nhấn nút, LED đổi trạng thái. Dùng điện trở kéo lên bên trong (INPUT_PULLUP) và chống dội bằng millis().
Linh kiện
- ESP32 DevKitC V4
- Điện trở
- LED
- Nút nhấn
Thư viện
Không cần thư viện ngoài.
Thử ngay khi mô phỏng chạy
- Nhấn giữ nút trên mạch khi mô phỏng đang chạy.
- Bật thuộc tính “dội phím” của nút và xem code chống dội có tác dụng.
main.cpp
// Nút nhấn trên GPIO4 (nối xuống GND) đảo trạng thái LED trên GPIO2const int LED_PIN = 2;const int BUTTON_PIN = 4;const unsigned long DEBOUNCE_MS = 30; bool ledOn = false;bool lastReading = HIGH;bool stableState = HIGH;unsigned long lastChange = 0; void setup() { Serial.begin(115200); pinMode(LED_PIN, OUTPUT); pinMode(BUTTON_PIN, INPUT_PULLUP); Serial.println("San sang: nhan nut de doi LED");} void loop() { bool reading = digitalRead(BUTTON_PIN); if (reading != lastReading) { lastReading = reading; lastChange = millis(); } if (millis() - lastChange > DEBOUNCE_MS && reading != stableState) { stableState = reading; if (stableState == LOW) { ledOn = !ledOn; digitalWrite(LED_PIN, ledOn ? HIGH : LOW); Serial.println(ledOn ? "LED: ON" : "LED: OFF"); } }}