Aula02 - Explorando ESP32 WROOM
Aula02 - Explorando ESP32 WROOM
O chip ESP32-D0WDQ6 é
projetado para ser escalável e
adaptável. Existem dois núcleos
de CPU que podem ser
controlados individualmente, e
a frequência do clock da CPU é
ajustável de 80 MHz a 240 MHz.
ESP32-WROOM
ESP32-WROOM
Os pinos GPIO 34, 35, 36 e 39 são apenas de
entrada.
TX0 e RX0 (Serial0) são usados para
programação serial.
TX2 e RX2 podem ser acessados como Serial2.
Todos os pinos GPIO suportam PWM e
interrupções.
O LED integrado está conectado ao GPIO2
Alguns pinos GPIO são usados para interfacear
memória flash e, portanto, não são mostrados.
ESP32-WROOM
Pinos GPIO
Inicia a simulação
Conhecendo Wokwi
Adicionar
Componente
Conhecendo Wokwi
Conhecendo Wokwi
Conhecendo Wokwi
Conhecendo Wokwi
Calculando o resistor
Verificar o valor da tensão elétrica da fonte de alimentação.
3.3V - 12mA
3.3V - 12mA
3.3V - 500mA
Calculando o resistor
0,02 A
Calculando o resistor
�� − �푳� �, � − �
�� = = = �� Ω
�� �, ��
Conhecendo Wokwi
Conhecendo Wokwi
Conhecendo Wokwi
LED piscante
Análise do código
void setup() {
pinMode(22, OUTPUT);
Um sketch do Esp32 deve ter uma função setup() e uma função loop(), do
contrário, não funcionará. A função setup() é executada somente uma vez no
início do programa, e é nela que você emitirá instruções gerais para preparar
o programa antes que o loop principal seja executado, como a definição dos
modos dos pinos, das taxas de transmissão serial etc.
LED piscante
Análise do código
void setup() {
pinMode(22, OUTPUT);
}
A função pinMode, que diz ao Esp32 que deseja-se definir o modo de um
dos pinos como Saída (Output), e não Entrada (Input). Dentro dos
parênteses, coloca-se o número do pino e o modo (OUTPUT ou INPUT).
Dessa forma, essa instrução está simplesmente dizendo ao Esp32 que o
pino digital 22 deve ser definido como modo OUTPUT.
LED piscante
Análise do código
void loop() {
digitalWrite(22, HIGH);
delay(1000);
digitalWrite(22, LOW);
delay(1000);
}
A função loop() é a função principal do programa e executa continuamente
enquanto o Esp32 estiver ligado. Todas as declarações dentro da função loop()
(dentro das chaves) são executadas uma de cada vez, passo a passo, até que se
alcance o fim da função; nesse ponto, o loop reinicia desde o princípio e assim
infinitamente, ou até que o Esp32 seja desligado ou o botão Reset pressionado.
LED piscante
Análise do código
digitalWrite(22, HIGH);
Ela escreve um valor HIGH ou LOW para o pino dentro da instrução .
Quando define-se um pino como HIGH, está enviando 3,3 volts para ele.
Quando define como LOW, o pino se torna 0 volt, ou terra. Essa
instrução, portanto, envia 3,3 V para o pino 22 e acende o LED.
LED piscante
Análise do código
delay(1000);
Essa instrução simplesmente diz ao Esp32 para esperar 1.000 milissegundos (há
1.000 milissegundos em um segundo) antes de executar a instrução seguinte.
digitalWrite(22, LOW);
O que desliga a força que vai para o pino digital 22 e apaga o LED. Então, há
outra instrução de espera por mais 1.000 milissegundos, e depois a função
termina. Entretanto, como essa é sua função loop() principal, a função reiniciará
desde o princípio.
ESP32-WROOM
Exemplo GPIO - Entrada e Saída
#define botao 4
#define led 15
int pinStatus = 0;
void setup(){
Serial.begin(115200);
pinMode(botao, INPUT);
pinMode(led, OUTPUT);
}
void loop(){
pinStatus = digitalRead(botao);
digitalWrite(led, pinStatus);
delay(500);
}
ESP32-WROOM
Exemplo GPIO - PWM
#define potenciometro 33
int poten;
void setup(){
Serial.begin(115200);
}
void loop(){
poten = analogRead(potenciometro);
Serial.println(poten);
delay(500);
}
ESP32-WROOM
Exemplo GPIO - Touch
//configurando pinos
#define touchPin T0 //corresponde ao pino D4
#define ledPin 23
//valor limite pode ser alterado
#define valLimite 20
//variável para armazenar o valor do pino touch
int valorTouch;
void setup(){
//inicializando a saída serial com 115200 bps
Serial.begin(115200);
//inicializando ledPin como saída
pinMode(ledPin, OUTPUT);
}
ESP32-WROOM
Exemplo GPIO - Touch
void loop(){
//lê o pino touch e armazena na variável
valorTouch = touchRead(touchPin);
Serial.println(valorTouch);
//verifica se o valorTouch é menor que valLimite
// se for, define ledPin como HIGH
if (valorTouch < valLimite) {
//ligar o LED
digitalWrite(ledPin, HIGH);
Serial.println(" - LED ligado");
} else {
// desligar o LED
digitalWrite(ledPin, LOW);
Serial.println(" - LED ligado");
}
delay(500);
}
Conhecendo a IDE Arduino
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo
http://arduino.esp8266.com/stable/package_esp8266com_index.json,
https://dl.espressif.com/dl/package_esp32_index.json.
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo
Existem diferentes
modelos de placas. No
software é preciso
selecionar o modelo da
placa e a porta USB
utilizada antes de começar
a programação. Neste
curso será utilizado o
modelo Esp32 wroom 32
IDE Arduino
Conhecendo
LED piscante
Montagem Prática