#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int botState;
#define trigger 4
#define echo 2
#define ledR 13
#define ledY 12
#define ledG 14
#define bot 19
#define bomba 27
#define portOP 26
#define portCL 25
void setup() {
Serial.begin(115200);
pinMode(echo, INPUT);
pinMode(trigger, OUTPUT);
pinMode(ledR, OUTPUT);
pinMode(ledY, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(portCL, OUTPUT);
pinMode(portOP, OUTPUT);
pinMode(bot, INPUT_PULLUP);
pinMode(bomba, OUTPUT);
lcd.init();
lcd.backlight();
}
void loop() {
digitalWrite(trigger, LOW);
delayMicroseconds(10);
digitalWrite(trigger, HIGH);
int sinal = (pulseIn(echo, HIGH)/58.75);
Serial.println(sinal);
Serial.println(botState);
if (sinal < 20){
digitalWrite(ledR, HIGH);
digitalWrite(ledY, LOW);
digitalWrite(ledG, LOW);
}
else if (sinal < 40 && sinal >= 20){
digitalWrite(ledR, LOW);
digitalWrite(ledY, HIGH);
digitalWrite(ledG, LOW);
}
else{
digitalWrite(ledR, LOW);
digitalWrite(ledY, LOW);
digitalWrite(ledG, HIGH);
}
lcd.setCursor(0, 0);
lcd.print("Litros:");
lcd.setCursor(8, 0);
if (sinal >= 100){
lcd.print(sinal);
}
else if (sinal >= 10){
lcd.print("0");
lcd.print(sinal);
}
else{
lcd.print("00");
lcd.print(sinal);
}
if(digitalRead(bot) == LOW){
botState = !botState;
delay(175);
}
if (botState == true && sinal >= 20){
digitalWrite(bomba, HIGH);
delay(250);
digitalWrite(bomba, LOW);
delay(250);
lcd.setCursor(0,1);
lcd.print("Funcionando");
}
else{
lcd.setCursor(0,1);
lcd.print("Parada ");
}
if(sinal < 400){
digitalWrite(portCL, HIGH);
digitalWrite(portOP, LOW);
lcd.setCursor(13, 0);
lcd.print("ABR");
}
else{
digitalWrite(portCL, LOW);
digitalWrite(portOP, HIGH);
lcd.setCursor(13, 0);
lcd.print("FCH");
}
delay(100);
}