ESP32 - Knop Tellen - LCD

In deze handleiding verkennen we de mogelijkheden van de ESP32 om de volgende doelen te bereiken:

Daarnaast behandelt deze tutorial het ‘debouncen’ van de knop zonder gebruik te maken van de delay() functie. Voor een uitgebreide uitleg waarom debouncing belangrijk is, kunt u terecht bij Waarom hebben we debouncing nodig?.

Deze tutorial begeleidt u stapsgewijs bij het naadloos integreren van het tellen van knopdrukken, het LCD I2C-display, en debouncing technieken in uw ESP32-project.

Hardware benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×Breadboard knop met kap
1×Breadboard knop set
1×Paneelknop (drukknop)
1×Drukknopmodule
1×LCD I2C
1×Breadboard (experimenteerprint)
1×Jumperdraden (man-man)
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over LCD I2C en knop

Bent u niet vertrouwd met LCD I2C en knoppen, inclusief hun pinout, werking en programmering? Verken dan de uitgebreide tutorials over deze onderwerpen hieronder:

Bedradingsschema

ESP32 Knop LCD I2C Bedradingsschema

This image is created using Fritzing. Click to enlarge image

ESP32 Code - knop aantal weergeven op LCD I2C

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-button-count-lcd */ #include <LiquidCrystal_I2C.h> #include <ezButton.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows ezButton button(27); // create ezButton object that attach to the ESP32 pin GPIO27 unsigned long lastCount = 0; void setup() { Serial.begin(9600); lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight button.setDebounceTime(50); // set debounce time to 50 milliseconds button.setCountMode(COUNT_FALLING); } void loop() { button.loop(); // MUST call the loop() function first unsigned long count = button.getCount(); if (lastCount != count) { Serial.println(count); // print count to Serial Monitor lcd.clear(); lcd.setCursor(0, 0); // start to print at the first row lcd.print("Count: "); lcd.print(count); lastCount != count; } }

Snelle stappen

  • Als dit de eerste keer is dat u de ESP32 gebruikt, zie dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
  • Maak de bedrading zoals op de afbeelding hierboven.
  • Verbind de ESP32 met uw pc via een micro USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 board (bijv. ESP32 Dev Module) en COM-poort.
  • Klik op het Libraries-icoon in de linkerzijbalk van Arduino IDE.
  • Zoek “ezButton” en vind de knopbibliotheek van ArduinoGetStarted.
  • Klik op de Installeren-knop om de ezButton bibliotheek te installeren.
ESP32 knopbibliotheek
  • Zoek “LiquidCrystal I2C” en vind de LiquidCrystal_I2C bibliotheek van Frank de Brabander.
  • Klik op de Installeren-knop om LiquidCrystal_I2C te installeren.
ESP32 LiquidCrystal I2C bibliotheek
  • Kopieer bovenstaande code en open deze met Arduino IDE.
  • Klik op de Upload-knop om de code naar de ESP32 te uploaden.
  • Druk meerdere keren op de knop.
  • Zie het aantal op het LCD-display veranderen.

※ Notiz:

Het I2C-adres van het LCD kan variëren afhankelijk van de fabrikant. In de code is 0x27 gebruikt, wat is opgegeven door de fabrikant DIYables.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap het project te voltooien.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!