Soek Kode

ESP32 Tutoriaal 9/55 - Gebruik van Druk-knoppie om LED te Wissel, Druk AAN, Druk AF -SunFounder ESP32 IoT-kit

ESP32 Tutoriaal 9/55 - Gebruik van Druk-knoppie om LED te Wissel, Druk AAN, Druk AF -SunFounder ESP32 IoT-kit

In hierdie tutoriaal sal ons leer hoe om 'n drukknoppie te gebruik om 'n LED aan en af te skakel met 'n ESP32-mikrobeheerder. Die projek sal demonstreer hoe om die toestand van die drukknoppie te lees en die LED dienooreenkomstig te beheer. Wanneer die knoppie gedruk word, sal die LED aanskakel, en wanneer dit losgelaat word, sal dit afskakel. Dit is 'n fundamentele konsep vir baie interaktiewe projekte wat die ESP32 gebruik.

Die ESP32 is 'n kragtige mikrobeheerder met ingeboude Wi-Fi- en Bluetooth-vermoëns, wat dit geskik maak vir verskeie IoT-toepassings. In hierdie les sal ons die ESP32 van die SunFounder ESP32-stel gebruik, wat noodsaaklike komponente soos resistors en LED's insluit, om 'n eenvoudige stroombaan te skep. Vir 'n gedetailleerde verduideliking van die bedrading en kode, verwys asseblief na die video (in video by 00:00).

Hardeware Verduidelik

Die sleutelkomponente vir hierdie projek sluit die ESP32-mikrobeheerder, 'n drukknoppie, 'n LED en resistors in. Die ESP32 dien as die brein van die projek en beheer die LED gebaseer op die drukknoppie se toestand. Die drukknoppie stel gebruikers in staat om met die stroombaan te interaksie, terwyl die LED visuele terugvoer verskaf wanneer die knoppie gedruk word.

Die drukknoppie werk deur die stroombaan te sluit wanneer dit gedruk word, wat stroom laat vloei. Hierdie aksie stuur 'n HOË sein na die aangewese invoerpen van die ESP32, wat dan in die kode gelees kan word. Die resistor wat aan die knoppie gekoppel is, verseker dat die pen 'n gedefinieerde toestand het wanneer die knoppie nie gedruk word nie, wat wisselvallige gedrag voorkom.

Drukknoppie met resistor

Bedradinginstruksies

Om die stroombaan te bedraad, begin deur die langer pen van die LED (anode) aan 'n 220-ohm-resistor te koppel. Koppel die ander punt van die resistor aan GPIO-pen 26 op die ESP32. Die korter pen van die LED (katode) moet aan die grond gekoppel word. Neem dan die drukknoppie en koppel een kant aan die 3.3V-kragtoevoer op die bord. Die ander kant van die drukknoppie koppel aan GPIO-pen 14.

Drukknoppie sonder resistor
Drukknoppie sonder resistor
Drukknoppie met resistor
Drukknoppie met resistor

Plaas verder 'n 10k-ohm-resistor van GPIO-pen 14 na grond om te verseker dat die pen LAAG lees wanneer die knoppie nie gedruk word nie. Koppel laastens die gronddraad van die ESP32 aan die gemeenskaplike grond op die broodbord. Hierdie opstelling sal die ESP32 in staat stel om die knoppietoestand te lees en die LED dienooreenkomstig te beheer.

Kode Voorbeelde & Deurloop

Die kern van die program begin deur die penommers vir die knoppie en die LED met konstantes te definieer. Dit verseker dat die pen-toewysings onveranderd bly gedurende die uitvoering van die program.

// stel penommers in
const int buttonPin = 14;  // Knoppiepen
const int ledPin = 26;     // LED-pen

In die setup()-funksie initialiseer ons die seriële monitor en stel die knoppiepen as 'n invoer terwyl ons die LED-pen as 'n uitvoer konfigureer. Dit berei die ESP32 voor om van die knoppie te lees en die LED te beheer.

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

Binne die loop()-funksie lees die program voortdurend die knoppietoestand en druk dit na die seriële monitor. As die knoppie gedruk word, word die LED aangeskakel; andersins word dit afgeskakel. Hierdie logika is noodsaaklik om die LED te skakel gebaseer op die knoppie se toestand.

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

Hierdie basiese funksionaliteit laat die LED direk op die drukknoppie reageer. Vir verdere besonderhede oor die projek en die volledige kode, verwys asseblief na die video wat verskaf word (in video by 14:00).

Demonstrasie / Wat om te Verwacht

Sodra die bedrading voltooi is en die kode opgelaai is, behoort die druk van die drukknoppie die LED aan te skakel, en die loslating daarvan sal die LED afskakel. Hierdie gedrag bevestig dat die knoppietoestand korrek gelees word. As die LED nie reageer soos verwag nie, kontroleer die bedrading en verseker dat die knoppie behoorlik funksioneer.

Tydens toetsing, maak seker om die seriële monitor vir die knoppietoestandleesings waar te neem. Jy behoort 'n '1' te sien wanneer die knoppie gedruk word en 'n '0' wanneer dit losgelaat word. As die lesings onverwags wissel, kan dit 'n bedradingsprobleem aandui of 'n behoefte aan bykomende debounce-logika in die kode.

Video Tydstempels

  • 00:00 Begin
  • 1:48 Projekinleiding
  • 3:10 Skakelaar en drukknoppie verduidelik
  • 7:19 Bedrading verduidelik
  • 12:25 Arduino-kode vir drukknoppie verduidelik
  • 15:56 Kies ESP32-bord en COM-poort
  • 17:38 Demonstrasie van die projek
  • 18:33 Projek-2 Wissel en LED
  • 19:09 Arduino-kode om LED te wissel
  • 21:16 Demonstrasie van die wissel van 'n LED

Beelde

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
Taal: 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);
  }
}

Hulpbronne en verwysings

Geen hulpbronne nog.

Lêers📁

Geen lêers beskikbaar.