Drukknop met ESP32 – Arduino IDE

Drukknop Met Esp32 Arduino Ide



ESP32 is een IoT-bord dat kan worden gekoppeld aan verschillende externe randapparatuur om uitvoer te genereren. ESP32 neemt input van apparaten zoals drukknoppen en genereert reacties op basis van de ontvangen input. Drukknoppen kunnen worden gebruikt om meerdere sensoren en apparaten te bedienen, zoals het aansturen van een LED of het handhaven van de snelheid van motoren. Hier in deze les bespreken we de drukknopinterface met ESP32.

Hieronder volgt de inhoudsopgave van deze les:







1: Inleiding tot drukknop



2: Werking van de drukknop



2.1: Werkmodi met drukknoppen





3: Interfacedrukknop met ESP32

3.1: Digitale invoer Uitvoerpennen in ESP32



3.2: Digitale ingangen lezen in ESP32

3.3: Drukknop koppelen aan ESP32 met behulp van de digitale leesfunctie

3.4: Hardware vereist

3.5: Schema

3.6: Code voor koppeling ESP32 met drukknop

3.7: Uitvoer

1: Inleiding tot drukknop

Een drukknop is een eenvoudige knop met een mechanisme om de status van verschillende machines of processen te regelen. Drukknop is gemaakt van hard materiaal zoals plastic of metaal en het bovenoppervlak is meestal vlak waardoor gebruikers erop kunnen drukken.

In ESP32-projecten wordt de drukknop veel gebruikt om de invoer- en uitvoerstatus van de pin te regelen. Tuimelschakelaars en drukknoppen werken op iets andere principes. Conventionele of tuimelschakelaar komt tot rust zodra deze wordt ingedrukt, terwijl de drukknop een apparaat met twee standen is dat meestal tot rust komt zodra deze wordt losgelaten.

Laten we dieper ingaan op het werkingsprincipe van de drukknop in details:

2: Werking van de drukknop

Een drukknop heeft normaal gesproken 4 pinnen. Deze 4 pinnen zijn verbonden in de vorm van een paar, zoals twee bovenste pinnen die intern zijn verbonden, op dezelfde manier zijn de andere twee ook intern verbonden.


Om te weten welke twee pinnen zijn aangesloten, neemt u een multimeter (DMM) en stelt u deze in op continuïteitstest , bevestig nu de positieve sonde met een willekeurig been van de knop en bevestig vervolgens één voor één de negatieve sonde van de multimeter met andere benen. Als de verbinding tussen beide uiteinden tot stand is gebracht, is er een pieptoon hoorbaar van de multimeter. Die twee benen die intern verbonden zijn, maken het circuit compleet.

2.1: Werkmodi met drukknoppen

Om de drukknop in een circuit te gebruiken, hebben we één pin nodig van elk intern verbonden paar. Als we de pinnen van de drukknop van hetzelfde paar nemen die intern zijn verbonden, zal dit resulteren in een kortsluiting omdat deze al zijn verbonden, het zal het drukknopmechanisme omzeilen.

Op basis van dit mechanisme kan de drukknop in de volgende twee modi werken:


Als we een voorbeeld nemen van de modus die wordt weergegeven in de onderstaande afbeelding. We kunnen zien dat wanneer de knop niet wordt ingedrukt, de interne verbinding open is zodra de knop wordt ingedrukt, de interne A- en B-aansluiting worden verbonden en het circuit wordt voltooid.


Nu hebben we het basisprincipe achter de werking van drukknoppen afgerond. Vervolgens zullen we een eenvoudige drukknop koppelen aan ESP32 en er een LED mee besturen.

3: Interfacedrukknop met ESP32

Voordat u de drukknop met ESP32 kunt verbinden, moet u de GPIO-pinnen kennen die als invoer kunnen worden gebruikt. Nu zullen we de digitale input output pinnen in ESP32 bespreken.

3.1: Digitale invoer Uitvoerpennen in ESP32

ESP32 heeft in totaal 48 pinnen die elk specifiek zijn voor een bepaalde functie, van de 48 pinnen zijn sommige niet fysiek zichtbaar, wat betekent dat we ze niet voor externe doeleinden kunnen gebruiken. Deze pinnen zijn geïntegreerd in ESP32 voor verschillende functies.

ESP32 bord heeft 2 verschillende varianten 36 spelden en 30 pinnen. Hier ligt het verschil van 6 pinnen tussen beide borden vanwege 6 geïntegreerde SPI-flash-pinnen die beschikbaar zijn voor SPI-communicatie op een 36 pinnen variant van ESP32 board. Deze 6 SPI-pinnen kunnen echter niet worden gebruikt voor andere doeleinden, zoals input-output.

De hieronder gegeven pinout is van 30-polig ESP32-bord:


Van alle GPIO slechts 4 pinnen ( 34, 35, 36 en 39 ) zijn alleen invoer terwijl alle andere pinnen kunnen worden gebruikt voor zowel invoer als uitvoer. Zoals hierboven vermeld, kunnen de 6 SPI-pinnen niet worden gebruikt voor invoer of uitvoer.

3.2: Digitale ingangen lezen in ESP32

Drukknopinvoer kan worden gelezen op een gedefinieerde GPIO-pin waarvoor een functie is pinMode() moet eerst worden gedefinieerd in de Arduino-code. Deze functie stelt de GPIO-pin in als invoer. pinMode() Functiesyntaxis is als volgt:

pinMode ( GPIO, INVOER ) ;


Om gegevens te lezen van een gedefinieerde GPIO-pin digitaal lezen() functie wordt aangeroepen. Hieronder volgt de opdracht die men kan gebruiken om gegevens van een drukknop op een GPIO-pin te halen:

digitaal lezen ( GPIO ) ;

3.3: Drukknop koppelen aan ESP32 met behulp van de digitale leesfunctie

Nu zullen we ESP32 koppelen met de drukknop met behulp van de digitaal lezen functie op elke GPIO-pin. Door de invoer van de drukknop te nemen, wordt een LED AAN of UIT geschakeld.

3.4: Hardware vereist

Hieronder vindt u de lijst met vereiste componenten:

    • ESP32-bord
    • Een LED
    • Weerstanden van 220 Ohm
    • 4-pins drukknop
    • Broodplank
    • Jumper-draden aansluiten

3.5: Schema

Onderstaande afbeelding is het schematische diagram van de drukknop met ESP32. Hier wordt de invoer gelezen van de drukknop op GPIO-pin 15 en wordt de LED aangesloten op GPIO-pin 14.

3.6: Code voor koppeling van drukknop met ESP32

Om nu code te uploaden naar ESP32 zal de Arduino IDE-editor worden gebruikt. Open de IDE en sluit het ESP32-bord aan, selecteer daarna de COM-poort in het gereedschapsgedeelte. Zodra het ESP32-bord klaar is, plakt u de code in IDE en klikt u op uploaden:

const int Push_Button = vijftien ; /* Digitale speld vijftien bepaald voor Druk op de knop */
const int LED_Pin = 14 ; /* Digitale speld 14 bepaald voor LED */
int Button_State = 0 ;
ongeldige opstelling ( ) {
Serieel.begin ( 115200 ) ;
pinMode ( Drukknop, INPUT ) ; /* GPIO vijftien set net zo Invoer */
pinMode ( LED_Pin, UITGANG ) ; /* GPIO 14 set net zo Uitgang */
}
lege lus ( ) {
Button_State = digitalRead ( Druk op de knop ) ; /* Controleer de status van de drukknop */
Serial.println ( Button_State ) ;
als ( Button_State == HOOG ) { /* als voorwaarde om de knopstatus te controleren */
digitaalSchrijven ( LED_Pin, HOOG ) ; /* HOGE status-LED AAN */
} anders {
digitaalSchrijven ( LED_Pin, LAAG ) ; /* Anders LED UIT */
}
}


Code gestart door GPIO-pinnen te definiëren voor LED en drukknop. Daarna wordt LED GPIO gedeclareerd als uitvoer terwijl drukknop GPIO wordt ingesteld als invoer.

Uiteindelijk wordt de status van de drukknop gecontroleerd met behulp van de if-voorwaarde. Drukknopstatus wordt ook afgedrukt op seriële monitor met behulp van Serial.println(Button_State) .

Als de drukknopingang HOOG is, gaat hij AAN, anders blijft hij UIT.

3.7: Uitvoer

In eerste instantie kunnen we zien dat de LED UIT is.


Druk nu op de drukknop, er wordt een HIGH-signaal naar ESP32 GPIO 15 gestuurd en de LED gaat branden.


Dezelfde output is ook te zien op de Arduino seriële monitor.

Conclusie

ESP32 heeft meerdere GPIO-pinnen die digitale gegevens van sensoren zoals drukknoppen kunnen lezen. Met behulp van de digitale leesfunctie kan de drukknop eenvoudig worden gekoppeld aan ESP32 om verschillende apparaten te bedienen. Door dit artikel een keer te gebruiken, kan de drukknop worden gekoppeld aan elke GPIO-pin van ESP32.