Botó amb ESP32 - Arduino IDE

Boto Amb Esp32 Arduino Ide



ESP32 és una placa IoT que es pot connectar amb diferents perifèrics externs per generar sortides. ESP32 pren entrada de dispositius com polsadors i genera respostes segons l'entrada rebuda. Els botons es poden utilitzar per controlar diversos sensors i dispositius, com ara controlar un LED o mantenir la velocitat dels motors. Aquí, en aquesta lliçó, parlarem de la interfície de botons amb ESP32.

A continuació es mostra la taula de continguts d'aquesta lliçó:







1: Introducció al botó polsador



2: Funcionament del polsador



2.1: Modes de treball del botó





3: Pulsador d'interfície amb ESP32

3.1: Pins d'entrada de sortida digital a ESP32



3.2: Com llegir les entrades digitals a ESP32

3.3: Interfície de botó amb ESP32 mitjançant la funció de lectura digital

3.4: Maquinari necessari

3.5: Esquema

3.6: Codi per a la interfície ESP32 amb polsador

3.7: Sortida

1: Introducció al botó polsador

Un polsador és un simple botó amb un mecanisme per controlar els estats de diferents màquines o processos. El polsador està fet de material dur com el plàstic o el metall i la superfície superior sol ser plana, cosa que permet als usuaris prémer-lo.

En els projectes ESP32, el polsador s'utilitza àmpliament per controlar els estats d'entrada i sortida del pin. Els interruptors de palanca i els polsadors funcionen amb principis lleugerament diferents. L'interruptor convencional o de palanca s'atura un cop es prem, mentre que el polsador és un dispositiu de dues posicions que normalment s'atura un cop es deixa anar.

Aprofundim en el principi de funcionament del botó polsador en detalls:

2: Funcionament del polsador

Un polsador normalment té 4 pins. Aquests 4 pins estan connectats en forma de parell, com ara dos pins superiors estan connectats internament de la mateixa manera que els altres dos també estan connectats internament.


Per saber quins dos pins estan connectats, agafeu un multímetre (DMM) i configureu-lo prova de continuïtat , ara connecteu la sonda positiva amb qualsevol pota del botó i, una a una, connecteu la sonda negativa del multímetre amb altres potes. Si la connexió s'ha completat entre ambdós extrems, es pot escoltar un so des del multímetre. Les dues potes que estan connectades internament completaran el circuit.

2.1: Modes de treball del botó

Per utilitzar el polsador en un circuit necessitem un pin de cada parell connectat internament. Si agafem els pins del polsador del mateix parell que estan connectats internament, es produirà un curtcircuit ja que aquests ja estan connectats es saltarà el mecanisme del polsador.

Basat en aquest mecanisme, el polsador pot funcionar en els dos modes següents:


Si prenem un exemple del mode que es mostra a la imatge següent. Podem veure que quan no es prem el botó la connexió interna s'obre un cop es prem el botó es connectaran els terminals A i B interns i es completarà el circuit.


Ara hem completat el principi bàsic darrere del funcionament dels polsadors. A continuació, connectarem un simple polsador amb ESP32 i controlarem un LED utilitzant-lo.

3: Pulsador d'interfície amb ESP32

Abans de connectar el polsador amb ESP32 cal conèixer els pins GPIO que es poden utilitzar com a entrada. Ara parlarem dels pins de sortida d'entrada digital a ESP32.

3.1: Pins d'entrada de sortida digital a ESP32

ESP32 té un total de 48 pins cadascun dels quals és específic per a una funció determinada, entre els 48 pins alguns no estan físicament exposats, la qual cosa significa que no els podem utilitzar per a finalitats externes. Aquests pins estan integrats a l'ESP32 per a diferents funcions.

La placa ESP32 té 2 variants diferents 36 agulles i 30 agulles. Aquí la diferència de 6 pins entre ambdues plaques rau a causa dels 6 pins flash SPI integrats disponibles per a la comunicació SPI en un 36 variant de pins de la placa ESP32. Tanmateix, aquests 6 pins SPI no es poden utilitzar per a altres finalitats, com ara la sortida d'entrada.

El pinout donat a continuació és de 30 pins Placa ESP32:


Entre tots els GPIO només 4 pins ( 34, 35, 36 i 39 ) només s'introdueixen, mentre que la resta de pins es poden utilitzar tant per a l'entrada com per a la sortida. Com s'ha esmentat anteriorment, els 6 pins SPI no es poden utilitzar per a l'entrada ni la sortida.

3.2: Com llegir les entrades digitals a ESP32

L'entrada del botó es pot llegir en un pin GPIO definit per al qual una funció pinMode() s'ha de definir primer dins del codi Arduino. Aquesta funció establirà el pin GPIO com a entrada. pinMode() La sintaxi de la funció és la següent:

pinMode ( GPIO, ENTRADA ) ;


Per llegir dades d'un pin GPIO definit digitalRead() s'anomenarà la funció. A continuació es mostra l'ordre que es pot utilitzar per agafar dades del polsador d'un pin GPIO:

lectura digital ( GPIO ) ;

3.3: Interfície de botó amb ESP32 mitjançant la funció de lectura digital

Ara connectarem l'ESP32 amb el polsador mitjançant el lectura digital funció a qualsevol pin GPIO. Prenent l'entrada del polsador s'encendrà o s'apagarà un LED.

3.4: Maquinari necessari

A continuació es mostra la llista de components necessaris:

    • Placa ESP32
    • Un LED
    • Resistències de 220 ohms
    • Pulsador de 4 pins
    • Tauler
    • Connexió de cables de pont

3.5: Esquema

A continuació es mostra el diagrama esquemàtic del polsador amb ESP32. Aquí l'entrada es llegeix des del polsador del pin 15 del GPIO i el LED es connecta al pin 14 del GPIO.

3.6: Codi per a la interfície de polsador amb ESP32

Ara, per carregar el codi a ESP32, s'utilitzarà l'editor Arduino IDE. Obriu l'IDE i connecteu la placa ESP32, després seleccioneu el port COM a la secció d'eines. Un cop la placa ESP32 estigui a punt, enganxeu el codi a l'IDE i feu clic a carregar:

const int Push_Button = 15 ; /* Pin digital 15 definit per Polsador */
const int LED_Pin = 14 ; /* Pin digital 14 definit per LED */
int Estat_botó = 0 ;
configuració de buit ( ) {
Serial.begin ( 115200 ) ;
pinMode ( Pulsador, INPUT ) ; /* GPIO 15 conjunt com Entrada */
pinMode ( LED_Pin, SORTIDA ) ; /* GPIO 14 conjunt com Sortida */
}
bucle buit ( ) {
Button_State = digitalRead ( Polsador ) ; /* Comproveu l'estat del polsador */
Serial.println ( Estat_botó ) ;
si ( Button_State == ALTA ) { /* si condició per comprovar l'estat del botó */
digitalWrite ( LED_Pin, ALTA ) ; /* LED d'estat ALTO ON */
} altra cosa {
digitalWrite ( LED_Pin, BAIX ) ; /* En cas contrari, LED APAGAT */
}
}


El codi va començar definint pins GPIO per a LED i polsador. Després d'això, el LED GPIO es declara com a sortida mentre que el botó GPIO es configura com a entrada.

Al final, l'estat del botó es verifica mitjançant la condició if. L'estat del botó també s'imprimeix al monitor sèrie mitjançant Serial.println(Estat_botó) .

Si l'entrada del polsador és el led ALTA, s'encendrà en cas contrari, romandrà APAGAT.

3.7: Sortida

Al principi, podem veure que el LED està apagat.


Ara premeu el polsador, s'enviarà un senyal ALTA a l'ESP32 GPIO 15 i el LED s'encendrà.


La mateixa sortida també es pot veure al monitor sèrie Arduino.

Conclusió

L'ESP32 té múltiples pins GPIO que poden llegir dades digitals de sensors com els botons. L'ús del polsador de la funció de lectura digital es pot connectar fàcilment amb ESP32 per controlar diferents dispositius. Si feu servir aquest article una vegada, podeu connectar el polsador amb qualsevol pin GPIO de l'ESP32.