#include <LiquidCrystal_I2C.h> // Libreria que controla el I2C
#include <Wire.h> // La libreria Wire viene incluida en el IDE de arduino
LiquidCrystal_I2C lcd(0x27,16,2); // dependiendo del fabricante del LCD, la direccion 0x27 puede cambiar, utilice el I2C_Scan primero por favor!
const int relayPin = 7; // Pin digital al que está conectado el relé
const int buzzerPin = 8; // Pin digital al que está conectado el buzzer
const int startButtonPin = 2; // Pin digital al que está conectado el botón de encendido
const int stopButtonPin = 4; // Pin digital al que está conectado el botón de apagado
bool isRunning = false; // Estado del sistema
void setup() {
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW); // Asegurarse de que el relé está apagado
pinMode(buzzerPin, OUTPUT);
digitalWrite(buzzerPin, LOW); // Asegurarse de que el buzzer está apagado
pinMode(startButtonPin, INPUT);
pinMode(stopButtonPin, INPUT);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("RECUERDA"); // Mensaje a desplegar
lcd.setCursor(0,1);
lcd.print("Tienes 5 minutos para banarte"); // Mensaje 2 a desplegar
delay(3000); // espera 3 segundos con el mensaje estatico
}
void loop() {
for(int c=0;c<16;c++){
lcd.scrollDisplayLeft(); // Movimiento a la Izquierda
delay(170);
}
for(int c=0; c<16;c++){
lcd.scrollDisplayRight(); // Movimiento a la Derecha
delay(170);
}
{
if (digitalRead(startButtonPin) == HIGH && !isRunning) {
isRunning = true;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Regadera ON");
digitalWrite(relayPin, LOW); // Abrir la electroválvula
delay(300000); // Esperar 5 minutos (300000 ms)
if (isRunning) {
digitalWrite(relayPin, HIGH); // Cerrar la electroválvula
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Regadera OFF");
tone(buzzerPin, 1000, 2000); // Emitir un tono de 1000 Hz por 2 segundos
isRunning = false;
}
}
if (digitalRead(stopButtonPin) == HIGH && isRunning) {
isRunning = false;
digitalWrite(relayPin, HIGH); // Cerrar la electroválvula
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Regadera OFF");
tone(buzzerPin, 500, 1000); // Emitir un tono de 500 Hz por 1 segundo
}
}
}