ESP32 es una placa de microcontrolador que tiene múltiples pasadores de salida de entrada. ESP32 como Arduino puede leer y controlar tanto la entrada digital como la salida digital. Entonces, aquí en este artículo cubriremos cómo controlar la salida ESP32 y cómo leer la entrada digital de periféricos externos.
Cómo instalar ESP32 en Arduino IDE
Antes de avanzar más a nuestro tema principal, me gustaría recordarle que instale el Arduino IDE en PC y si la placa ESP32 no está instalada en Arduino IDE, entonces aquí está la guía sobre cómo instalar ESP32 en Arduino IDE.
Pins de salida de entrada digital en ESP32
Los tableros ESP32 vienen con un total de 48 Pins que realizan diferentes funciones, no todos los pines están físicamente expuestos en tableros ESP32. Algunos alfileres no están disponibles para su uso.
ESP32 viene en dos variantes, uno viene con 36 alfileres y el segundo con 30 patas. La diferencia de seis pines aquí se debe a los pines SPI que están integrados para la comunicación SPI y no pueden usarse para ningún otro propósito.
La imagen de Pinout a continuación es de un tablero de 30 pines ESP32. La mayoría de estos alfileres son similares a otras versiones como el tablero de 36 pin ESP32. Sin embargo, la versión de 36 pin de ESP32 tiene 6 pines SPI especiales que no se recomiendan para usarlos como GPIO.
La siguiente tabla ilustra el estado de salida de entrada de los pines de placa ESP32:
Pasador de gpio | APORTE | PRODUCCIÓN | Descripción |
GPIO 0 | Arrancados | DE ACUERDO | Salida PWM al arranque |
GPIO 1 | TX PIN | DE ACUERDO | DEPUMTA DE SALIDA EN BOOT |
GPIO 2 | DE ACUERDO | DE ACUERDO | A bordo de LED |
GPIO 3 | DE ACUERDO | Pasador de rx | Alto en el arranque |
GPIO 4 | DE ACUERDO | DE ACUERDO | - |
GPIO 5 | DE ACUERDO | DE ACUERDO | Salida PWM al arranque |
GPIO 6 | - | - | Pin flash SPI |
GPIO 7 | - | - | Pin flash SPI |
GPIO 8 | - | - | Pin flash SPI |
GPIO 9 | - | - | Pin flash SPI |
GPIO 10 | - | - | Pin flash SPI |
GPIO 11 | - | - | Pin flash SPI |
GPIO 12 | DE ACUERDO | DE ACUERDO | FALLO DE BOOT A HIGH PILL |
GPIO 13 | DE ACUERDO | DE ACUERDO | - |
GPIO 14 | DE ACUERDO | DE ACUERDO | Salida PWM al arranque |
GPIO 15 | DE ACUERDO | DE ACUERDO | Salida PWM al arranque |
GPIO 16 | DE ACUERDO | DE ACUERDO | - |
GPIO 17 | DE ACUERDO | DE ACUERDO | - |
GPIO 18 | DE ACUERDO | DE ACUERDO | - |
GPIO 19 | DE ACUERDO | DE ACUERDO | - |
GPIO 21 | DE ACUERDO | DE ACUERDO | - |
GPIO 22 | DE ACUERDO | DE ACUERDO | - |
GPIO 23 | DE ACUERDO | DE ACUERDO | - |
GPIO 25 | DE ACUERDO | DE ACUERDO | - |
GPIO 26 | DE ACUERDO | DE ACUERDO | - |
GPIO 27 | DE ACUERDO | DE ACUERDO | - |
GPIO 32 | DE ACUERDO | DE ACUERDO | - |
GPIO 33 | DE ACUERDO | DE ACUERDO | - |
GPIO 34 | DE ACUERDO | Solo entrada | |
GPIO 35 | DE ACUERDO | Solo entrada | |
GPIO 36 | DE ACUERDO | Solo entrada | |
GPIO 39 | DE ACUERDO | Solo entrada |
Aquí DE ACUERDO significa que el pin correspondiente se puede usar como entrada o salida. Todos los pines GPIO de ESP32 se pueden usar como entrada y salida. Solo los pines SPI 6 a 11 no se pueden usar como entrada o salida. Los pines GPIO 34, 35, 36 y 39 son solo de entrada.
Cómo controlar las salidas digitales utilizando pines digitales en ESP32
Como estamos programando ESP32 en Arduino IDE, utilizaremos las mismas funciones para declarar un PIN tan salida como lo hicimos en el tablero de Arduino.
Para configurar cualquier pin digital, tenemos que declararlo como salida utilizando PinMode () función.
Se seguirá la siguiente sintaxis:
PinMode (GPIO, salida);
Aquí usando la función anterior hemos declarado un pin de GPIO como salida ahora para controlar la salida digital que usaremos DigitalWrite () función.
DigitalWrite (GPIO, Estado);
Esta función toma dos argumentos, uno es el número de pin GPIO y el segundo es el estado de ese pin que se debe definir. El estado puede ser bajo o alto.
Como se explicó anteriormente, podemos usar todos los pines de ESP32 como salida excepto GPIO 6 a 11 (SPI Flash) y GPIO 34, 35, 36 y 39 (Solo entrada).
Cómo leer entradas digitales en ESP32
Leer una entrada de pines digitales es similar a controlar una salida de un pin. Primero tenemos que declarar un pin como entrada utilizando el PinMode () función. La siguiente es la sintaxis que define un pin como entrada:
PinMode (GPIO, entrada);
Una vez que el pin se establece como entrada, el siguiente paso es definir el DigitalRead () función para obtener datos de ese pin. Así es como puede definir un PIN como entrada digital.
DigitalRead (GPIO);
Todos los pines GPIO se pueden usar como entrada, excepto los pasadores de flash SPI de 6 a 11.
Nota: Faltan los pines SPI Flash 6 a 11 en la versión de 30 pines de la placa ESP32.
Cómo controlar LED usando ESP32 Digital Read and Write
Ahora, para borrar el concepto de lectura digital y escribir en ESP32, tomaremos un ejemplo de LED. Para controlar el LED, usaremos un botón PUSH.
ESP32 leerá digitalmente los datos de PushButton y controlará un LED usando el comando de escritura digital.
Se requiere hardware
El siguiente es la lista de componentes requeridos:
Esquemático
La siguiente imagen ilustra la conexión de ESP32 con LED y Pushbutton. El LED está conectado a GPIO 14 y la salida de botón de empuje está conectada al pin 15 de GPIO.
Código para controlar las entradas/salidas digitales ESP32
Abra Arduino IDE y seleccione la placa ESP32 y el puerto COM, ahora cargue el código dado.
const int push_button = 15; /*GPIO Pin 15 para el botón Push*/
const int led_pin = 14; /*GPIO Pin 14 para LED*/
int button_state = 0;
setup () void
De serie.comenzar (115200);
PinMode (push_button, entrada); /*Establezca el pin de botón como entrada digital*/
PinMode (LED_PIN, salida); /*Establecer LED como salida digital*/
bucle void ()
Button_state = digitalread (push_button); /*Función para verificar el botón de empuje*/
De serie.println (Button_state);
if (button_state == high) /*Verifique el estado del botón Push usando if condición* /
DigitalWrite (LED_PIN, High); /*Si el estado es alto encendido LED*/
demás
DigitalWrite (LED_PIN, Low); /*El más led permanece apagado*/
Aquí en el código anterior, comenzamos inicializando el pin GPIO para LED y botón de empuje. A continuación, declaramos LED como salida y botón de empuje como entrada para leer datos.
Para almacenar datos de lectura del botón Push se define una variable y al final imprimimos el resultado en el monitor en serie.
Producción
En el hardware podemos ver que el LED está apagado.
Ahora presionando la placa Botton ESP32 tomará la entrada del botón de empuje y establecerá el estado de salida del LED a alto. Ahora el LED se encenderá.
También podemos ver los datos digitales leídos del botón de empuje en el monitor en serie de IDE.
Conclusión
Los tableros ESP32 tienen múltiples pasadores digitales para entrada y salida. Aquí en este artículo, discutimos estos pines y controlamos un LED usando el botón PUSH. También hemos mencionado que hay ciertos pines que solo se pueden usar como entrada, mientras que algunos pines como SPI Flash de 6 a 11 (36 Versión ESP32 Board) no se pueden usar como entrada o salida.