#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Ultrasonic.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

int g = 15;
int y = 2;
int r = 4;
int trigger = 5;
int echo = 18;

Ultrasonic ultrasonic(trigger, echo);

void setup() {
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  Serial.println("Lendo dados do sensor...");

  pinMode(g, OUTPUT);
  pinMode(y, OUTPUT);
  pinMode(r, OUTPUT);
}

void loop() {
  long distance = ultrasonic.read();

  // Atualizando o LCD com a distância medida
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Litros:");
  lcd.setCursor(0, 1);
  lcd.print(distance);
  lcd.print("l");

  // Atualizando os LEDs com base na distância
  if (distance < 20) {
    digitalWrite(r, HIGH); // Vermelho - estado crítico
    digitalWrite(y, LOW);
    digitalWrite(g, LOW);
  } else if (distance >= 20 && distance < 40) {
    digitalWrite(r, LOW);
    digitalWrite(y, HIGH); // Amarelo - estado de atenção
    digitalWrite(g, LOW);
  } else {
    digitalWrite(r, LOW);
    digitalWrite(y, LOW);
    digitalWrite(g, HIGH); // Verde - estado normal
  }

  delay(1000);
}