Search Code

Hướng dẫn ESP32 9/55 - Sử dụng nút nhấn để Bật/Tắt LED, Nhấn BẬT, Nhấn TẮT - Bộ kit IoT SunFounder ESP32

Hướng dẫn ESP32 9/55 - Sử dụng nút nhấn để Bật/Tắt LED, Nhấn BẬT, Nhấn TẮT - Bộ kit IoT SunFounder ESP32

Trong hướng dẫn này, chúng ta sẽ học cách sử dụng nút nhấn để bật và tắt đèn LED với vi điều khiển ESP32. Dự án sẽ minh họa cách đọc trạng thái của nút nhấn và điều khiển đèn LED tương ứng. Khi nút được nhấn, đèn LED sẽ sáng, và khi nhả ra, đèn sẽ tắt. Đây là một khái niệm nền tảng cho nhiều dự án tương tác sử dụng ESP32.

ESP32 là một vi điều khiển mạnh mẽ với khả năng Wi-Fi và Bluetooth tích hợp, phù hợp cho nhiều ứng dụng IoT. Trong bài học này, chúng ta sẽ sử dụng ESP32 từ Bộ khởi động ESP32 của SunFounder, bao gồm các linh kiện thiết yếu như điện trở và đèn LED, để tạo một mạch điện đơn giản. Để có giải thích chi tiết về cách nối dây và mã, vui lòng tham khảo video (trong video tại 00:00).

Giải thích phần cứng

Các thành phần chính cho dự án này bao gồm vi điều khiển ESP32, một nút nhấn, một đèn LED và các điện trở. ESP32 đóng vai trò là bộ não của dự án, điều khiển đèn LED dựa trên trạng thái của nút nhấn. Nút nhấn cho phép người dùng tương tác với mạch điện, trong khi đèn LED cung cấp phản hồi trực quan khi nút được nhấn.

Nút nhấn hoạt động bằng cách đóng mạch điện khi được nhấn, cho phép dòng điện chạy qua. Hành động này gửi tín hiệu CAO đến chân đầu vào được chỉ định của ESP32, sau đó có thể được đọc trong mã. Điện trở kết nối với nút đảm bảo rằng chân có trạng thái xác định khi nút không được nhấn, ngăn ngừa hành vi thất thường.

Nút nhấn với điện trở

Hướng dẫn nối dây

Để nối mạch điện, bắt đầu bằng cách kết nối chân dài hơn của đèn LED (cực dương) với một điện trở 220 ohm. Kết nối đầu còn lại của điện trở với chân GPIO 26 trên ESP32. Chân ngắn hơn của đèn LED (cực âm) nên được kết nối với đất. Tiếp theo, lấy nút nhấn và kết nối một bên với nguồn điện 3.3V trên bo mạch. Bên còn lại của nút nhấn kết nối với chân GPIO 14.

Nút nhấn không có điện trở
Nút nhấn không có điện trở
Nút nhấn với điện trở
Nút nhấn với điện trở

Ngoài ra, đặt một điện trở 10k ohm từ chân GPIO 14 xuống đất để đảm bảo chân đọc ở mức THẤP khi nút không được nhấn. Cuối cùng, kết nối dây đất từ ESP32 với đất chung trên bảng breadboard. Thiết lập này sẽ cho phép ESP32 đọc trạng thái nút và điều khiển đèn LED tương ứng.

Ví dụ mã & Hướng dẫn chi tiết

Phần lõi của chương trình bắt đầu bằng việc định nghĩa số chân cho nút và đèn LED bằng các hằng số. Điều này đảm bảo rằng việc gán chân không thay đổi trong suốt quá trình thực thi chương trình.

// đặt số chân
const int buttonPin = 14;  // Chân nút
const int ledPin = 26;     // Chân LED

Trong hàm setup(), chúng ta khởi tạo màn hình nối tiếp và đặt chân nút làm đầu vào trong khi cấu hình chân LED làm đầu ra. Điều này chuẩn bị cho ESP32 đọc từ nút và điều khiển đèn LED.

void setup() {
  Serial.begin(115200);
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

Bên trong hàm loop(), chương trình liên tục đọc trạng thái nút và in nó ra màn hình nối tiếp. Nếu nút được nhấn, đèn LED sẽ sáng; nếu không, đèn sẽ tắt. Logic này rất quan trọng để bật/tắt đèn LED dựa trên trạng thái của nút.

void loop() {
  buttonState = digitalRead(buttonPin);
  Serial.println(buttonState);
  delay(100);
  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

Chức năng cơ bản này cho phép đèn LED phản hồi trực tiếp với nút nhấn. Để biết thêm chi tiết về dự án và mã hoàn chỉnh, vui lòng tham khảo video được cung cấp (trong video tại 14:00).

Trình diễn / Điều gì sẽ xảy ra

Sau khi hoàn tất việc nối dây và tải mã lên, nhấn nút nhấn sẽ làm đèn LED sáng, và nhả ra sẽ làm đèn LED tắt. Hành vi này xác nhận rằng trạng thái nút đang được đọc chính xác. Nếu đèn LED không phản hồi như mong đợi, hãy kiểm tra việc nối dây và đảm bảo rằng nút hoạt động bình thường.

Trong quá trình kiểm tra, hãy quan sát màn hình nối tiếp để xem các giá trị trạng thái nút. Bạn sẽ thấy '1' khi nút được nhấn và '0' khi nút được nhả ra. Nếu các giá trị dao động bất thường, điều đó có thể chỉ ra sự cố nối dây hoặc cần thêm logic chống nhiễu (debouncing) trong mã.

Mốc thời gian video

  • 00:00 Bắt đầu
  • 1:48 Giới thiệu dự án
  • 3:10 Giải thích về công tắc và nút nhấn
  • 7:19 Giải thích về cách đấu dây
  • 12:25 Giải thích mã Arduino cho nút nhấn
  • 15:56 Chọn bo mạch ESP32 và cổng COM
  • 17:38 Trình diễn dự án
  • 18:33 Dự án 2: Chuyển đổi trạng thái và đèn LED
  • 19:09 Mã Arduino để chuyển đổi trạng thái đèn LED
  • 21:16 Trình diễn chuyển đổi trạng thái đèn LED

Hình ảnh

Push button with resistor
Push button with resistor
Push button with resistor
Push button with resistor
Push button without resistor
Push button without resistor
Push button without resistor
Push button without resistor
Push button with resistor
Push button with resistor
808-ESP32 Tutorial 9/55 - Arduino code push button
Ngôn ngữ: C++
// set pin numbers
const int buttonPin = 14;  // Button pin
const int ledPin = 26;     // LED pin

// variable for storing the button status
int buttonState = 0;

void setup() {
  Serial.begin(115200);
  // initialize the button pin as an input
  pinMode(buttonPin, INPUT);
  // initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // read the state of the button value
  buttonState = digitalRead(buttonPin);
  Serial.println(buttonState);
  delay(100);
  // if the button is pressed
  if (buttonState == HIGH) {
    // turn LED on
    digitalWrite(ledPin, HIGH);

  } else {
    // turn LED off
    digitalWrite(ledPin, LOW);
  }
}

Tài nguyên & tài liệu tham khảo

Chưa có tài nguyên nào.

Tập tin📁

Không có tệp nào khả dụng.