Series
Lập Trình ESP32 Cơ Bản
  1. Series Lập Trình ESP32 Cơ Bản – Giới Thiệu: Lộ Trình 19 Bài Từ Số 0
  2. 1Lập trình ESP32 – Bài 1: ESP32 là gì? Hướng dẫn bắt đầu với ESP32 cho người mới
  3. 2Lập trình ESP32 – Bài 2: Kết nối WiFi và kiểm tra Internet với ESP32
  4. 3Lập trình ESP32 – Bài 3: Đọc nút nhấn và điều khiển LED với ESP32
  5. 4Lập trình ESP32 – Bài 4: Đọc nhiệt độ & độ ẩm với cảm biến DHT11
  6. 5Lập trình ESP32 – Bài 5: ESP32 Web Server – Điều khiển LED qua trình duyệt
  7. 6Lập trình ESP32 – Bài 6: Điều khiển LED RGB
  8. 7Lập trình ESP32 – Bài 7: Điều khiển Relay qua Web Server
  9. 8Lập trình ESP32 – Bài 8: WebSocket – Điều khiển LED realtime từ trình duyệt
  10. 9Lập trình ESP32 – Bài 9: Đọc cảm biến ánh sáng (LDR) và hiển thị realtime qua WebSocket
  11. 10Lập trình ESP32 – Bài 10: Điều khiển Servo SG90 qua Web Server
  12. 11Lập trình ESP32 – Bài 11: Đọc các loại biến trở (Potentiometer / Analog Sensor)
  13. 12Lập trình ESP32 – Bài 12: Đọc cảm biến khoảng cách HC-SR04
  14. 13Lập trình ESP32 – Bài 13: ESP32 – Đọc cảm biến nhiệt độ, độ ẩm DHT11 và hiển thị dữ liệu realtime qua WebSocket
  15. 14Lập trình ESP32 – Bài 14: Hiển thị màn hình TFT (SPI)
  16. 15Lập trình ESP32 – Bài 15: Màn hình OLED SSD1306 (I2C)
  17. 16Lập trình ESP32 – Bài 16: Module SIM 4G A7680C – Gọi điện thoại, in thông tin SIM/Module, trạng thái 4G
  18. 17Lập trình ESP32 – Bài 17: Phát nhạc MP3 với module DFPlayer Mini
  19. 18Lập trình ESP32 – Bài 18: Đọc cảm biến khí gas MQ-2 và hiển thị lên màn hình OLED
  20. 19Lập trình ESP32 – Bài 19: Kết nối MQTT, Publish dữ liệu cảm biến & Subscribe điều khiển thiết bị
Kiến thức

Lập trình ESP32 – Bài 3: Đọc nút nhấn và điều khiển LED với ESP32

Th10 2025
Lập trình ESP32 – Bài 3: Đọc nút nhấn và điều khiển LED với ESP32

Học cách đọc trạng thái nút nhấn (Button) và điều khiển đèn LED bằng ESP32. Bài hướng dẫn chi tiết cho người mới bắt đầu với Arduino IDE và mạch ESP32 DevKit.

Mục lục

  1. Giới thiệu
  2. Nguyên lý hoạt động
  3. Phần cứng cần chuẩn bị
  4. Sơ đồ kết nối
  5. Mã nguồn ví dụ
  6. Giải thích mã
  7. Kết quả khi chạy
  8. Gợi ý mở rộng

1. Giới thiệu

Trong các dự án IoT, việc nhận tín hiệu từ nút nhấn và điều khiển thiết bị (như LED, relay) là thao tác cơ bản nhưng rất quan trọng.

Ở bài này, chúng ta sẽ:

  • Đọc trạng thái của nút nhấn.
  • Khi nhấn, LED sáng; khi thả, LED tắt.
  • Làm quen với khái niệm digital input và digital output.

2. Nguyên lý hoạt động

Nút nhấn hoạt động như một công tắc tạm thời (momentary switch).

Khi nhấn, chân INPUT của ESP32 được nối xuống GND → mức LOW.

Khi thả, nó trở về mức HIGH nhờ điện trở kéo lên (pull-up resistor) tích hợp sẵn trong ESP32.

3. Phần cứng cần chuẩn bị

Linh kiệnSố lượngGhi chú
ESP32 DevKit V11Board chính
Nút nhấn (Button)1Loại 4 chân hoặc 2 chân
Điện trở 220Ω1Cho LED
LED đỏ1Hiển thị trạng thái
Dây nối BreadboardVài sợiKết nối mạch

4. Sơ đồ kết nối (Connection Diagram)

Sơ đồ ESP32 → LED (GPIO2) → 220Ω → GND; Button → GPIO4 → GND

Mô tả sơ đồ:

  • LED nối với chân GPIO2 thông qua điện trở 220Ω.
  • Nút nhấn nối GPIO4 và GND.
  • Nguồn lấy từ USB (5V).

5. Mã nguồn ví dụ

#define LED_PIN 2
#define BUTTON_PIN 4

void setup() {
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUTTON_PIN, INPUT_PULLUP); // dùng điện trở kéo lên nội bộ

  Serial.begin(115200);
}

void loop() {
  int buttonState = digitalRead(BUTTON_PIN);
  if (buttonState == LOW) {  // nhấn nút
    digitalWrite(LED_PIN, HIGH);
    Serial.println("Button pressed - LED ON");
  } else {
    digitalWrite(LED_PIN, LOW);
    Serial.println("Button released - LED OFF");
  }

  delay(100); // chống nhiễu nhẹ
}

6. Giải thích mã

  • pinMode(BUTTON_PIN, INPUT_PULLUP) – bật điện trở kéo lên nội bộ giúp ổn định tín hiệu.
  • digitalRead() – đọc trạng thái HIGH/LOW của nút nhấn.
  • Khi nhấn → tín hiệu LOW → bật LED.
  • Khi thả → tín hiệu HIGH → tắt LED.

7. Kết quả khi chạy

  • Khi nhấn nút, LED sáng.
  • Khi thả nút, LED tắt.
  • Trên Serial Monitor sẽ hiển thị:
Button pressed - LED ON
Button released - LED OFF

8. Gợi ý mở rộng

  • Thêm chống dội (debounce) bằng phần mềm.
  • Dùng nút để chuyển đổi trạng thái LED (toggle mode).
  • Kết hợp thêm cảm biến hoặc relay để điều khiển thiết bị thực tế.