Esptop 10 digitale innganger og digitale utganger ved bruk av Arduino IDE

Esptop 10 digitale innganger og digitale utganger ved bruk av Arduino IDE

ESP32 er et mikrokontrollertavle som har flere inngangsutgangspinner. ESP32 som Arduino kan lese og kontrollere både digital inngang og digital utgang. Så her i denne artikkelen vil vi dekke hvordan du kontrollerer ESP32 -utgangen og hvordan du kan lese digitale innspill fra eksterne periferiutstyr.

Hvordan installere ESP32 i Arduino IDE

Før vi går videre til hovedemnet vårt, vil jeg minne deg om å installere Arduino ide i PC og hvis ESP32 -brettet ikke er installert i Arduino IDE, er her guiden for hvordan du installerer ESP32 i Arduino IDE.

Digitale inngangsutgangspinner i ESP32

ESP32 styrer kommer med totalt 48 Pins som utfører forskjellige funksjoner, ikke alle pinner er fysisk utsatt på ESP32 -brett. Noen pinner er ikke tilgjengelige for bruk.

ESP32 kommer i to varianter, en kommer med 36 pinner og den andre med 30 pinner. Forskjellen på seks pinner her skyldes SPI -pinner som er integrert for SPI -kommunikasjon og ikke kan brukes til noe annet formål.

Nedenfor Pinout -bildet er av et 30 -pinners ESP32 -brett. De fleste av disse pinnene ligner på andre versjoner som 36 Pin ESP32 -brettet. Imidlertid har 36 -pinnersversjonen av ESP32 6 spesielle SPI -integrerte pinner som ikke anbefales for å bruke dem som GPIO.

Følgende tabell illustrerer inngangsutgangsstatusen til ESP32 tavlepinner:

GPIO -pin Inngang PRODUKSJON Beskrivelse
GPIO 0 Trakk opp Ok PWM -utgang ved oppstart
GPIO 1 TX PIN Ok Output Debug ved oppstart
GPIO 2 Ok Ok Om bord ledet
GPIO 3 Ok Rx -pinne Høyt ved oppstart
GPIO 4 Ok Ok -
GPIO 5 Ok Ok PWM -utgang ved oppstart
GPIO 6 - - Spi Flash Pin
GPIO 7 - - Spi Flash Pin
GPIO 8 - - Spi Flash Pin
GPIO 9 - - Spi Flash Pin
GPIO 10 - - Spi Flash Pin
GPIO 11 - - Spi Flash Pin
GPIO 12 Ok Ok Boot mislykkes ved høyt trekk
GPIO 13 Ok Ok -
GPIO 14 Ok Ok PWM -utgang ved oppstart
GPIO 15 Ok Ok PWM -utgang ved oppstart
GPIO 16 Ok Ok -
GPIO 17 Ok Ok -
GPIO 18 Ok Ok -
GPIO 19 Ok Ok -
GPIO 21 Ok Ok -
GPIO 22 Ok Ok -
GPIO 23 Ok Ok -
GPIO 25 Ok Ok -
GPIO 26 Ok Ok -
GPIO 27 Ok Ok -
GPIO 32 Ok Ok -
GPIO 33 Ok Ok -
GPIO 34 Ok Bare inngang
GPIO 35 Ok Bare inngang
GPIO 36 Ok Bare inngang
GPIO 39 Ok Bare inngang

Her Ok betyr at den tilsvarende pinnen kan brukes som inngang eller utgang. Alle GPIO -pinner fra ESP32 kan brukes som både inngang og utgang. Bare SPI -pinner 6 til 11 kan ikke brukes som enten inngang eller utgang. GPIO -pinner 34, 35, 36 og 39 er bare innspill.

Hvordan kontrollere digitale utganger ved hjelp av digitale pinner i ESP32

Mens vi programmerer ESP32 i Arduino IDE, vil vi bruke de samme funksjonene for å erklære en PIN -kode som utdata som vi gjorde i Arduino -styret.

For å konfigurere enhver digital pin må vi erklære den som utdata ved hjelp av pinmode () funksjon.

Følgende syntaks vil bli fulgt:

PinMode (GPIO, output);

Her ved å bruke ovennevnte funksjon har vi erklært en GPIO -pinne som utgang nå for å kontrollere digital utgang vi vil bruke DigitalWrite () funksjon.

DigitalWrite (GPIO, State);

Denne funksjonen tar to argumenter, den ene er GPIO -pin -nummeret og den andre er tilstanden til den pinnen som skal defineres. Tilstand kan enten være lav eller høy.

Som forklart tidligere kan vi bruke alle pinner med ESP32 som utgang unntatt GPIO 6 til 11 (SPI Flash) og GPIO 34, 35, 36 og 39 (Kun inndata).

Hvordan lese digitale innganger i ESP32

Å lese en inngang fra digitale pinner ligner på å kontrollere en utgang av en pin. Først må vi erklære en pin som inngang ved hjelp av pinmode () funksjon. Følgende er syntaks som definerer en pinne som input:

PinMode (GPIO, input);

Når pinnen er satt som input, er neste trinn å definere DigitalRead () Funksjon for å få data fra den pinnen. Slik kan du definere en pinne som digital inngang.

DigitalRead (GPIO);

Alle GPIO -pinner kan brukes som input bortsett fra SPI -blitzpinnene fra 6 til 11.

Merk: SPI Flash Pins 6 til 11 mangler i 30 -pinnersversjonen av ESP32 -brettet.

Hvordan kontrollere LED ved hjelp av ESP32 Digital Read and Writ

Nå for å fjerne konseptet med digital lese og skrive i ESP32 vil vi ta et eksempel på LED. For å kontrollere LED -en, bruker vi en trykknapp.

ESP32 vil lese data digitalt fra trykknapp og kontrollere en LED ved hjelp av den digitale skrivekommandoen.

Maskinvare kreves

Følgende er listen over komponenter som kreves:

  • ESP32
  • Led
  • 2x 220 ohm motstand
  • Trykknapp
  • Brødbrett
  • Jumper ledninger

Skjematisk

Følgende bilde illustrerer forbindelsen mellom ESP32 med LED og trykknapp. LED -en er koblet til GPIO 14 og trykknappen er koblet til GPIO PIN 15.

Kode for å kontrollere ESP32 digitale innganger/utganger

Åpne Arduino IDE og velg ESP32 -tavlen og COM -porten, last nå opp den gitte koden.

const int push_button = 15; /*GPIO PIN 15 for trykknapp*/
const int led_pin = 14; /*Gpio pin 14 for LED*/
int button_state = 0;
void setup ()
Serie.Begin (115200);
pinmode (push_button, input); /*Sett trykknappen som digital inngang*/
pinmode (LED_PIN, utgang); /*Sett ledet som digital utgang*/

void loop ()
Button_State = DigitalRead (trykk_Button); /*Funksjon for å sjekke trykknappen*//
Serie.println (button_state);
if (knapp_state == HIGH) /*Sjekk trykknappstatus ved å bruke hvis tilstand* /
DigitalWrite (LED_PIN, HIGH); /*Hvis tilstanden er høy sving på LED*/
annet
DigitalWrite (LED_PIN, lav); /*Annet ledet forbli av*/

Her i koden ovenfor startet vi med å initialisere GPIO -pinnen for LED og trykknapp. Deretter erklærte vi LED som output og trykknapp som innspill for å lese data.

For å lagre Lese data fra trykknappen er en variabel definert, og til slutt trykket vi resultatet på seriemonitoren.

Produksjon

På maskinvare kan vi se at lysdioden er av.

Å trykke på trykknappen ESP32 vil nå ta innspill fra trykknappen og sette utgangstilstanden til LED til høy. Nå vil lysdioden slå seg på.

Vi kan også se de digitale dataene som er lest fra trykknappen på IDE -seriemonitoren.

Konklusjon

ESP32 -brett har flere digitale pinner for inngang og utgang. Her i denne artikkelen diskuterte vi disse pinnene og kontrollerte en LED ved hjelp av trykknappen. Vi har også nevnt at det er visse pinner som bare kan brukes som input, mens noen pinner som SPI -blitz fra 6 til 11 (36 versjon ESP32 -brett) ikke kan brukes verken som inngang eller utgang.