Esp32 é uma placa de microcontrolador com vários pinos de saída de entrada. Esp32 como o Arduino pode ler e controlar a entrada digital e a saída digital. Então, aqui neste artigo, abordaremos como controlar a saída ESP32 e como ler a entrada digital de periféricos externos.
Como instalar o ESP32 no Arduino IDE
Antes de avançarmos mais para o nosso tópico principal, gostaria de lembrá -lo de instalar o Arduino IDE no PC e se a placa ESP32 não estiver instalada no Arduino IDE, aqui está o guia sobre como instalar o ESP32 no Arduino IDE.
Pinos de saída de entrada digital no ESP32
As placas ESP32 vêm com um total de 48 pinos que executam funções diferentes, nem todos os pinos são fisicamente expostos em placas ESP32. Alguns pinos não estão disponíveis para uso.
Esp32 vem em duas variantes, uma vem com 36 pinos e o segundo com 30 pinos. A diferença de seis pinos aqui é devido a pinos SPI que são integrados para comunicação SPI e não podem ser usados para qualquer outro propósito.
A imagem de pinout abaixo é de uma placa ESP32 de 30 pinos. A maioria desses pinos é semelhante a outras versões, como a placa ESP32 de 36 pinos. No entanto, a versão de 36 pinos do ESP32 possui 6 pinos integrados SPI especiais que não são recomendados para usá -los como gpio.
A tabela a seguir ilustra o status de saída de entrada dos pinos da placa ESP32:
GPIO PIN | ENTRADA | SAÍDA | Descrição |
GPIO 0 | Puxado para cima | OK | Saída PWM na inicialização |
GPIO 1 | Pino tx | OK | Debug de saída na inicialização |
GPIO 2 | OK | OK | A bordo LED |
GPIO 3 | OK | Pino rx | Alto na bota |
GPIO 4 | OK | OK | - |
GPIO 5 | OK | OK | Saída PWM na inicialização |
GPIO 6 | - | - | Pino flash spi |
GPIO 7 | - | - | Pino flash spi |
GPIO 8 | - | - | Pino flash spi |
GPIO 9 | - | - | Pino flash spi |
GPIO 10 | - | - | Pino flash spi |
GPIO 11 | - | - | Pino flash spi |
GPIO 12 | OK | OK | Falha na bota em alta tração |
GPIO 13 | OK | OK | - |
GPIO 14 | OK | OK | Saída PWM na inicialização |
GPIO 15 | OK | OK | Saída PWM na inicialização |
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 | Apenas entrada | |
GPIO 35 | OK | Apenas entrada | |
GPIO 36 | OK | Apenas entrada | |
GPIO 39 | OK | Apenas entrada |
Aqui OK significa que o pino correspondente pode ser usado como entrada ou saída. Todos os pinos GPIO do ESP32 podem ser usados como entrada e saída. Somente os pinos SPI 6 a 11 não podem ser usados como entrada ou saída. Os pinos GPIO 34, 35, 36 e 39 são apenas de entrada.
Como controlar saídas digitais usando pinos digitais no ESP32
Como estamos programando o ESP32 no Arduino IDE, usaremos as mesmas funções para declarar um alfinete como saída do que fizemos na placa Arduino.
Para configurar qualquer pino digital, precisamos declará -lo como saída usando pinmode () função.
A seguir, a sintaxe será seguida:
pinmode (gpio, saída);
Aqui usando a função acima, declaramos um pino GPIO como saída agora para controlar a saída digital, usaremos DigitalWrite () função.
DigitalWrite (GPIO, estado);
Esta função leva dois argumentos, um é o número do pino GPIO e o segundo é o estado desse pino que deve ser definido. O estado pode ser baixo ou alto.
Conforme explicado anteriormente, podemos usar todos os pinos do ESP32 como saída, exceto GPIO 6 a 11 (Flash spi) e gpio 34, 35, 36 e 39 (Somente de entrada).
Como ler entradas digitais no ESP32
Ler uma entrada de pinos digitais é semelhante ao controle de uma saída de um pino. Primeiro, temos que declarar um alfinete como entrada usando o pinmode () função. A seguir, a sintaxe definindo um pino como entrada:
pinmode (gpio, entrada);
Depois que o pino é definido como entrada, o próximo passo é definir o DigitalRead () função para obter dados desse pino. É assim que você pode definir um alfinete como entrada digital.
DigitalRead (GPIO);
Todos os pinos de GPIO podem ser usados como entrada, exceto os pinos de flash spi de 6 a 11.
Observação: Os pinos flash spi 6 a 11 estão ausentes na versão de 30 pinos da placa ESP32.
Como controlar o LED usando o ESP32 Read and Write
Agora, para limpar o conceito de leitura digital e escrever no ESP32, daremos um exemplo de LED. Para controlar o LED, usaremos um botão.
O ESP32 lerá digitalmente os dados do PushButton e controlará um LED usando o comando digital de gravação.
Hardware necessário
A seguir, a lista de componentes necessários:
Esquemático
A imagem a seguir ilustra a conexão do ESP32 com o LED e o botão. O LED está conectado no GPIO 14 e a saída do botão está conectada no pino GPIO 15.
Código para controlar as entradas/saídas digitais ESP32
Abra o Arduino IDE e selecione a placa e porta COM ESP32, agora envie o código fornecido.
const int push_button = 15; /*GPIO PIN 15 para botão de pressão*/
const int led_pin = 14; /*GPIO pino 14 para LED*/
int button_state = 0;
Void Setup ()
Serial.começar (115200);
pinmode (push_button, entrada); /*Defina o pino de botão como entrada digital*/
pinmode (led_pin, saída); /*Defina o LED como saída digital*/
Void Loop ()
Button_state = digitalRead (push_button); /*Função para verificar o estado do botão*/
Serial.println (button_state);
if (button_state == High) /*Verifique o status do botão usando se condição* /
DigitalWrite (led_pin, alto); /*Se o estado estiver alto, ligue o LED*/
outro
DigitalWrite (led_pin, baixo); /*Else LED permanece fora*/
Aqui no código acima, começamos inicializando o pino GPIO para LED e Pushbutton. Em seguida, declaramos LED como saída e botão como entrada para ler dados.
Para armazenar dados de leitura do botão, uma variável é definida e finalmente imprimimos o resultado no monitor serial.
Saída
Em hardware, podemos ver que o LED está desligado.
Agora pressionando a placa de botão Esp32 receberá a entrada do botão e definirá o estado de saída do LED à alta. Agora o LED vai ligar.
Também podemos ver os dados digitais lidos do botão no monitor serial do IDE.
Conclusão
As placas ESP32 têm vários pinos digitais para entrada e saída. Aqui neste artigo, discutimos esses pinos e controlamos um LED usando o botão. Também mencionamos que existem certos pinos que só podem ser usados como entrada, enquanto alguns pinos como SPI Flash de 6 a 11 (36 versão esp32) não podem ser usados como entrada ou saída.