// ETEC Aristóteles Ferreira.
// Lucas Nascimento 3P1.
// ----------------------------------------------------- //
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Definindo os pinos do sensor ultrassônico.
#define TRIG_PIN 5
#define ECHO_PIN 4
// Inicializando o LCD com o endereço 0x27 (pode variar dependendo do seu módulo I2C).
LiquidCrystal_I2C lcd(0x27, 16, 2);
int duration;
int distance;
void setup() {
// Inicializa o LCD.
lcd.begin(16, 2);
// Definindo o LCD com 16 colunas e 2 linhas.
lcd.print("Trena Ultrasson.");
// Inicializa os pinos do sensor.
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
// Inicializa a comunicação serial.
Serial.begin(9600);
// Aguarda 2 segundos para estabilizar o display.
delay(2000);
}
void loop() {
// Envia um pulso no pino TRIG para iniciar a medição.
digitalWrite(TRIG_PIN, LOW);
// Aguarda 2 microssegundos.
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
// Envia o pulso por 10 microssegundos.
digitalWrite(TRIG_PIN, LOW);
// Lê o tempo de duração do pulso no pino ECHO.
int duration = pulseIn(ECHO_PIN, HIGH);
// Calcula a distância em centímetros.
int distance = duration * 0.0344 / 2; // Convertendo a duração para distância (cm).
// Limpa a tela do LCD antes de atualizar os valores.
lcd.clear();
lcd.setCursor(0, 0);
// Coloca o cursor na linha 1, coluna 0.
lcd.print("Distancia:");
// Exibe a distância no LCD.
lcd.setCursor(0, 1); // Coloca o cursor na linha 2, coluna 0.
lcd.print(distance);
lcd.print(" cm");
// Mostra os valores também no Monitor Serial para referência.
Serial.print("Distancia: ");
Serial.print(distance);
Serial.println(" cm");
// Aguarda meio segundo para atualizar a leitura e evitar leituras rápidas demais.
delay(500);
}
// ----------------------------------------------------- //
Sensor Ultrassônico - 1