// ETEC Sistemas Embarcados III - Prof. Paulo Minster
// Placa DOIT ESP32 DevKit v1 e Display LCD I²C
#include <LiquidCrystal_I2C.h> // Instalar a biblioteca LiquidCrystal I2C por Frank de Brabander
LiquidCrystal_I2C lcd(0x27, 16, 2); //endereço 0x27 ou 0x3F, coluna(0...15), linha(0...1)
int echoPino = 12; // Pino 12 ECHO - recebe o pulso
int trigPino = 13; // Pino 13 TRIGGER - envia o pulso para gerar o echo
long duracao = 0;
long distancia = 0;
void setup() {
lcd.init();
lcd.backlight();
pinMode(echoPino, INPUT); // Define o pino 12 como entrada (recebe)
pinMode(trigPino, OUTPUT); // Define o pino 13 como saída (envia)
}
void loop() {
digitalWrite(trigPino, LOW); // Pino trigger com um pulso baixo LOW (desligado)
delayMicroseconds(10); // Delay (atraso) de 10 microssegundos
digitalWrite(trigPino, HIGH); // Pino trigger com pulso HIGH (ligado)
delayMicroseconds(10); // Delay (atraso) de 10 microssegundos
digitalWrite(trigPino, LOW); // Pino trigger com um pulso baixo LOW (desligado) novamente
duracao = pulseIn(echoPino,HIGH); // A função pulseInt verifica a duração que o pino ECHO ficou HIGH
distancia = duracao / 58; // Cálculo baseado em: distância = duração / 58
lcd.setCursor(0, 0);
lcd.print("Distancia em cm: ");
lcd.setCursor(0, 1);
lcd.print(distancia);
delay(100);
}