#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
uint8_t cuadro[8] = {
0b11111,
0b011111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
};
int Rele=7;
int btn=8;
int stado =0;
//Rele 2
int Rele2=6;
int btn2=9;
int stado2=0;
//Boton Credito
int boton = 10;
int i=1;
bool estado, estadoAnt;
int cambio;
int costo=10;
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("BIENVENIDO");
lcd.setCursor(1,1);
lcd.print("INGRESA EL DINERO");
//RELEVADORES
pinMode(Rele,OUTPUT);
pinMode(btn, INPUT);
pinMode(Rele2, OUTPUT);
pinMode(btn2, INPUT);
//CREDITO
pinMode(boton, INPUT);
}
void loop() {
estado = digitalRead(boton);
if (estado == HIGH && estadoAnt == LOW){
i++;
lcd.setCursor(3,3);
lcd.print("CREDITO ES");
lcd.setCursor(14,3);
lcd.print(i);
}
estadoAnt = estado;
if(i>=costo ){
//ENJUAGE
stado=digitalRead(btn);
if(stado== HIGH){
lcd.clear();
digitalWrite(Rele, HIGH);
lcd.setCursor(5, 0);
lcd.print("ENJUAGANDO");
enjuagando();
digitalWrite(Rele, LOW);
lcd.setCursor(7, 3);
lcd.print("LISTO");
}
//LLENADO
stado2=digitalRead(btn2);
if(stado2==HIGH){
lcd.clear();
digitalWrite(Rele2, HIGH);
lcd.setCursor(5, 0);
lcd.print("LLENANDO");
cargando();
digitalWrite(Rele2, LOW);
if(i>costo){
cambio= i - costo;
lcd.setCursor(4, 3);
lcd.print("TU CAMBIO");
lcd.setCursor(15,3);
lcd.print(cambio);
}
}
}
}
void enjuagando(){
lcd.createChar(3, cuadro);
lcd.setCursor(3,1);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
lcd.print("\x03");
delay(200);
}
void cargando(){
lcd.createChar(3, cuadro);
lcd.setCursor(3,1);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
lcd.print("\x03");
delay(334);
}