#include <Wire.h> // Biblioteca para comunicação I2C
#include <LiquidCrystal_I2C.h> // Biblioteca para controlar o display LCD I2C
// Definições para o display LCD
#define LCD_ADDRESS 0x27 // Endereço I2C do display LCD
#define LCD_COLUMNS 16 // Número de colunas do display LCD
#define LCD_ROWS 2 // Número de linhas do display LCD
LiquidCrystal_I2C lcd(LCD_ADDRESS, LCD_COLUMNS, LCD_ROWS); // Inicialização do objeto para o display LCD
// Definindo os pinos do sensor ultrassônico
const int trigPin = 4;
const int echoPin = 17;
void setup() {
// Inicialização do display LCD
lcd.begin(16, 2);
// Inicialização dos pinos do sensor ultrassônico
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Limpa o display LCD
lcd.clear();
}
void loop() {
// Lê o tempo de retorno do pulso do echoPin
long duration = pulseIn(echoPin, HIGH);
// Define o pino trigPin como HIGH por 10 microsegundos para enviar o pulso
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Calcula a distância em centímetros
int distance = duration * 0.034 / 2;
int volume = distance * (0.59*0.745);
int volume1 = 70 - volume;
// Limpa o display LCD
lcd.clear();
// Escreve a distância medida no display LCD
lcd.setCursor(0, 0);
lcd.print("volume:");
lcd.setCursor(7, 0);
lcd.print(volume1);
lcd.setCursor(9, 0);
lcd.print("L");
// Aguarda um breve intervalo antes de realizar a próxima medição
delay(500);
}