Szukaj kodu

Samouczek ESP32 9/55 - Używanie przycisku do przełączania diody LED, naciśnij, aby włączyć, naciśnij, aby wyłączyć - zestaw IoT SunFounder ESP32

Samouczek ESP32 9/55 - Używanie przycisku do przełączania diody LED, naciśnij, aby włączyć, naciśnij, aby wyłączyć - zestaw IoT SunFounder ESP32

W tym samouczku nauczymy się, jak używać przycisku chwilowego do przełączania diody LED włączania i wyłączania za pomocą mikrokontrolera ESP32. Projekt pokaże, jak odczytywać stan przycisku i odpowiednio sterować diodą LED. Po naciśnięciu przycisku dioda LED zapali się, a po zwolnieniu zgaśnie. Jest to podstawowa koncepcja wielu interaktywnych projektów z użyciem ESP32.

ESP32 to wydajny mikrokontroler z wbudowaną obsługą Wi-Fi i Bluetooth, co czyni go odpowiednim do różnych zastosowań IoT. W tej lekcji użyjemy ESP32 z zestawu startowego SunFounder ESP32 Starter Kit, który zawiera niezbędne komponenty, takie jak rezystory i diody LED, aby stworzyć prosty obwód. Szczegółowe wyjaśnienie okablowania i kodu znajduje się w filmie (w filmie o 00:00).

Wyjaśnienie sprzętu

Kluczowe komponenty tego projektu to mikrokontroler ESP32, przycisk chwilowy, dioda LED i rezystory. ESP32 pełni rolę mózgu projektu, sterując diodą LED na podstawie stanu przycisku. Przycisk umożliwia użytkownikowi interakcję z obwodem, a dioda LED zapewnia wizualną informację zwrotną po naciśnięciu przycisku.

Przycisk chwilowy działa poprzez zamknięcie obwodu po naciśnięciu, co pozwala na przepływ prądu. Ta akcja wysyła sygnał HIGH do wyznaczonego pinu wejściowego ESP32, który można następnie odczytać w kodzie. Rezystor podłączony do przycisku zapewnia, że pin ma określony stan, gdy przycisk nie jest naciśnięty, zapobiegając niestabilnemu zachowaniu.

Przycisk chwilowy z rezystorem

Instrukcje okablowania

Aby podłączyć obwód, zacznij od połączenia dłuższego pinu diody LED (anody) z rezystorem 220 omów. Podłącz drugi koniec rezystora do pinu GPIO 26 na ESP32. Krótszy pin diody LED (katoda) powinien być podłączony do masy. Następnie weź przycisk chwilowy i podłącz jedną stronę do zasilania 3,3 V na płytce. Druga strona przycisku łączy się z pinem GPIO 14.

Przycisk chwilowy bez rezystora
Przycisk chwilowy bez rezystora
Przycisk chwilowy z rezystorem
Przycisk chwilowy z rezystorem

Dodatkowo umieść rezystor 10k omów od pinu GPIO 14 do masy, aby zapewnić, że pin odczytuje stan LOW, gdy przycisk nie jest naciśnięty. Na koniec podłącz przewód masy z ESP32 do wspólnej masy na płytce stykowej. Ta konfiguracja pozwoli ESP32 odczytywać stan przycisku i odpowiednio sterować diodą LED.

Przykłady kodu i omówienie

Rdzeń programu zaczyna się od zdefiniowania numerów pinów dla przycisku i diody LED za pomocą stałych. Zapewnia to, że przypisania pinów pozostaną niezmienione podczas całego wykonywania programu.

// ustaw numery pinów
const int buttonPin = 14;  // Pin przycisku
const int ledPin = 26;     // Pin diody LED

W funkcji setup() inicjalizujemy monitor szeregowy i ustawiamy pin przycisku jako wejście, konfigurując pin diody LED jako wyjście. To przygotowuje ESP32 do odczytu z przycisku i sterowania diodą LED.

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

Wewnątrz funkcji loop() program ciągle odczytuje stan przycisku i wypisuje go na monitorze szeregowym. Jeśli przycisk jest naciśnięty, dioda LED jest włączana; w przeciwnym razie jest wyłączana. Ta logika jest niezbędna do przełączania diody LED w zależności od stanu przycisku.

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

Ta podstawowa funkcjonalność pozwala diodzie LED reagować bezpośrednio na przycisk chwilowy. Dalsze szczegóły dotyczące projektu i pełnego kodu znajdują się w dołączonym filmie (w filmie o 14:00).

Demonstracja / Czego się spodziewać

Po zakończeniu okablowania i wgraniu kodu naciśnięcie przycisku chwilowego powinno włączyć diodę LED, a zwolnienie go spowoduje jej wyłączenie. To zachowanie potwierdza, że stan przycisku jest poprawnie odczytywany. Jeśli dioda LED nie reaguje zgodnie z oczekiwaniami, sprawdź okablowanie i upewnij się, że przycisk działa prawidłowo.

Podczas testowania obserwuj monitor szeregowy pod kątem odczytów stanu przycisku. Powinieneś zobaczyć '1', gdy przycisk jest naciśnięty, i '0', gdy jest zwolniony. Jeśli odczyty zmieniają się nieoczekiwanie, może to wskazywać na problem z okablowaniem lub konieczność dodania logiki eliminującej drgania styków w kodzie.

Znaczniki czasowe filmu

  • 00:00 Start
  • 1:48 Wprowadzenie do projektu
  • 3:10 Wyjaśnienie przełącznika i przycisku
  • 7:19 Wyjaśnienie okablowania
  • 12:25 Wyjaśnienie kodu Arduino dla przycisku
  • 15:56 Wybór płytki ESP32 i portu COM
  • 17:38 Demonstracja projektu
  • 18:33 Projekt-2 Przełączanie i dioda LED
  • 19:09 Kod Arduino do przełączania diody LED
  • 21:16 Demonstracja przełączania diody LED

Obrazy

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
Język: 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);
  }
}

Zasoby i odniesienia

Brak zasobów.

Pliki📁

Brak dostępnych plików.