#include <LiquidCrystal_I2C.h> // Debe descargar la Libreria que controla el I2C
#include<Wire.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
const int pulsador_ = 3;
const int bomba = 12;
volatile double waterFlow;
boolean state = false;
int pulsador;
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(1, 0);
lcd.print("ELECTROALL.");
delay(600);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("waterFlow: ");
lcd.print(waterFlow);
lcd.print(" L");
waterFlow = 0;
pinMode(pulsador_, INPUT_PULLUP); //Resistencia de pullup interna
attachInterrupt(0, pulse, RISING); //DIGITAL Pin 2: Interrupt 0
pinMode(bomba, OUTPUT);
}
void loop() {
pulsador = digitalRead(pulsador_);
if (pulsador == 0) {
digitalWrite(bomba, 1);
state = true;
waterFlow = 0;
}
if (state == true) {
lcd.setCursor(0, 0);
lcd.print("waterFlow:");
lcd.print(waterFlow);
lcd.print("L");
}
if (waterFlow >= 1) {
digitalWrite(bomba, 0);
state = false;
}
}
void pulse() //measure the quantity of square wave
{
waterFlow += 1.0 / 450.0;
}