///Este proyecto es para Dishwasher///
///para lavado "Normal"///
///con bomba de drenar electrica///
///con solenoide para la puerta del jabon///
//con barra de proceso (">>>>>>>>>>>>>>>>")//
#include <LiquidCrystal.h>//libreria de la pantalla
int INICIAR = 13;
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
int VALVULAS = 6;
int LLENO = 5;
int LAVANDO = 4;
int DRENAR = 3;
int SECANDO = 2;
int JABON = 1;
int pausa = 2000;
int flechas = 500;
int TiempoLavando = 1;//8 segundos, por cada ciclo del for//
//por tanto para lavar 10 minutos se ocupa poner el numero 600//
int TiempoEnjuagando = 1;//8 segundos, por cada ciclo del for//
//por tanto para enjuagar 5 minutos se ocupa poner el numero 300//
int TiempoSecando = 1;//8 segundos, por cada ciclo del for//
//por tanto para secar 10 minutos se ocupa poner el numero 600//
void setup() {
pinMode(INICIAR, INPUT);//se declara como entrada
pinMode(VALVULAS, OUTPUT);//se declara como salida
pinMode(LLENO, INPUT);//se declara como entrada
pinMode(LAVANDO, OUTPUT);//se declara como salida
pinMode(DRENAR, OUTPUT);//se declara como salida
pinMode(SECANDO, OUTPUT);//se declara como salida
pinMode(JABON, OUTPUT);//se declara como salidA
lcd.begin(16, 2);
lcd.setCursor(3,0);
lcd.print("BIENVENIDO");
delay(pausa);
lcd.clear();
lcd.setCursor(1,0);
lcd.print("PONLE JABON Y");
lcd.setCursor(0,1);
lcd.print("PRESIONA INICIAR");
delay(pausa);
}
void loop() {
//////////////////////////////////////
///////ARRANQUE DEL LAVAPLATOS///////
//////////////////////////////////////
if(digitalRead(INICIAR) == HIGH){//Cuando se oprime el boton de iniciar
delay(1000);//da un tiempo de espera
digitalWrite(VALVULAS, HIGH);//enciende las valvulas de llenado de agua
for (int cuenta = 0; digitalRead(LLENO) != HIGH; cuenta ++) {
lcd.clear();
lcd.setCursor(1,0);
lcd.print("LLENANDO AGUA");
lcd.setCursor(0,1);
lcd.print(">");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>>");
delay(flechas);
}
delay(pausa);
///////////////////////////////
///////PRIMERA ENJUAGADA//////////
/////////////////////////////////////
while(digitalRead(LLENO)== LOW){//mientras el switch no manda señal por estar la tina vacia
digitalRead(LLENO)== HIGH;// y hasta que el switch mande la señal de tina llena
}
digitalWrite(VALVULAS, LOW);//las valvulas de agua se apagan
lcd.clear();
lcd.setCursor(3,0);
lcd.print("ESTA LLENA");
delay(pausa);//da un tiempo de espera
lcd.clear();
lcd.setCursor(3,0);
lcd.print("INICIANDO");
lcd.setCursor(2,1);
lcd.print("PRE ENJUAGUE");
delay(pausa);//da un tiempo de espera
digitalWrite(LAVANDO, HIGH);//prende el motor para lavar
for (int cuenta = 0; cuenta < TiempoEnjuagando; cuenta ++) {
lcd.clear();
lcd.setCursor(2,0);
lcd.print("PRE ENJUAGUE");
lcd.setCursor(0,1);
lcd.print(">");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>>");
delay(flechas);
}
delay(pausa);
digitalWrite(LAVANDO, LOW);//se apaga el motor de lavar
delay(pausa);//da un tiempo de espera
digitalWrite(DRENAR, HIGH);//enciende la bomba de drenar
for (int cuenta = 0; digitalRead(LLENO) != LOW; cuenta ++) {
lcd.clear();
lcd.setCursor(4,0);
lcd.print("DRENANDO");
lcd.setCursor(0,1);
lcd.print(">");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>>");
delay(flechas);
}
delay(pausa);
while(digitalRead(LLENO)== HIGH){//mientras el switch esta cerrado
digitalRead(LLENO)== LOW;// y hasta que el switch se abre
}
digitalWrite(DRENAR, LOW);//apaga la bomba de drenar
delay(pausa);//da un tiempo de espera
///////////////////////////////
///////LAVADA CON JABON//////////
/////////////////////////////////////
if (digitalRead(LLENO) == LOW) {//si la tina esta vacia
digitalWrite(VALVULAS, HIGH);//enciende las valvulas de llenado de agua
for (int cuenta = 0; digitalRead(LLENO) != HIGH; cuenta ++) {
lcd.clear();
lcd.setCursor(1,0);
lcd.print("LLENANDO AGUA");
lcd.setCursor(0,1);
lcd.print(">");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>>");
delay(flechas);
}
delay(pausa);
while(digitalRead(LLENO)== LOW){//mientras el switch no manda señal por estar la tina vacia
digitalRead(LLENO)== HIGH;// y hasta que el switch mande la señal de tina llena
}
digitalWrite(VALVULAS, LOW);//las valvulas de agua se apagan
lcd.clear();
lcd.setCursor(3,0);
lcd.print("ESTA LLENA");
delay(pausa);//da un tiempo de espera
lcd.clear();
lcd.setCursor(0,0);
lcd.print("INICIANDO LAVADO");
delay(pausa);//da un tiempo de espera
digitalWrite(LAVANDO, HIGH);//prende el motor para lavar
digitalWrite(JABON, HIGH);//Activa el solenoide para que salga el jabon
for (int cuenta = 0; cuenta < TiempoLavando; cuenta ++) {
lcd.clear();
lcd.setCursor(4,0);
lcd.print("LAVANDO");
lcd.setCursor(0,1);
lcd.print(">");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>>");
delay(flechas);
}
delay(pausa);//da un tiempo de espera
digitalWrite(JABON, LOW);//Activa el solenoide para que vuelva a su posision
digitalWrite(LAVANDO, LOW);//se apaga el motor de lavar
delay(pausa);//da un tiempo de espera
digitalWrite(DRENAR, HIGH);//enciende la bomba de drenar
for (int cuenta = 0; digitalRead(LLENO) != LOW; cuenta ++) {
lcd.clear();
lcd.setCursor(4,0);
lcd.print("DRENANDO");
lcd.setCursor(0,1);
lcd.print(">");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>>");
delay(flechas);
}
delay(pausa);
while(digitalRead(LLENO)== HIGH){//mientras el switch esta cerrado
digitalRead(LLENO)== LOW;// y hasta que el switch se abre
}
digitalWrite(DRENAR, LOW);//apaga la bomba de drenar
delay(pausa);//da un tiempo de espera
//////////////////////////////////////
///////ARRANQUE DE LA ENJUAGADA///////
//////////////////////////////////////
if (digitalRead(LLENO) == LOW) {//si la tina esta vacia
digitalWrite(VALVULAS, HIGH);//enciende las valvulas de llenado de agua
for (int cuenta = 0; digitalRead(LLENO) != HIGH; cuenta ++) {
lcd.clear();
lcd.setCursor(1,0);
lcd.print("LLENANDO AGUA");
lcd.setCursor(0,1);
lcd.print(">");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>>");
delay(flechas);
}
delay(pausa);
while(digitalRead(LLENO)== LOW){//mientras la tina esta vacia
digitalRead(LLENO)== HIGH;//y hazta que la tina se llene
}
digitalWrite(VALVULAS, LOW);//las valvulas de agua se apagan
lcd.clear();
lcd.setCursor(3,0);
lcd.print("ESTA LLENA");
delay(pausa);//da un tiempo de espera
lcd.clear();
lcd.setCursor(3,0);
lcd.print("INICIANDO");
lcd.setCursor(3,1);
lcd.print("ENJUAGADA");
delay(pausa);//da un tiempo de espera
digitalWrite(LAVANDO, HIGH);//prende el motor para lavar
for (int cuenta = 0; cuenta < TiempoEnjuagando; cuenta ++) {
lcd.clear();
lcd.setCursor(3,0);
lcd.print("ENJUAGANDO");
lcd.setCursor(0,1);
lcd.print(">");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>>");
delay(flechas);
}
delay(pausa);
digitalWrite(LAVANDO, LOW);//se apaga el motor de lavar
delay(pausa);//da un tiempo de espera
digitalWrite(DRENAR, HIGH);//enciende la bomba de drenar
for (int cuenta = 0; digitalRead(LLENO) != LOW; cuenta ++) {
lcd.clear();
lcd.setCursor(4,0);
lcd.print("DRENANDO");
lcd.setCursor(0,1);
lcd.print(">");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>>");
delay(flechas);
}
delay(pausa);
while(digitalRead(LLENO)== HIGH){//mientras el switch esta cerrado
digitalRead(LLENO)== LOW;// y hasta que el switch se abre
}
digitalWrite(DRENAR, LOW);//apaga la bomba de drenar
delay(pausa);//da un tiempo de espera
digitalWrite(SECANDO, HIGH);//enciende la resistensia de secar
for (int cuenta = 0; cuenta < TiempoSecando; cuenta ++) {
lcd.clear();
lcd.setCursor(4,0);
lcd.print("SECANDO");
lcd.setCursor(0,1);
lcd.print(">");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>");
delay(flechas);
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>>");
delay(flechas);
}
delay(pausa);
digitalWrite(SECANDO, LOW);//apaga la resistensia de secar
lcd.clear();
lcd.setCursor(2,0);
lcd.print("HA TERMINADO");
delay(pausa);
lcd.setCursor(0,1);
lcd.print("TODO ESTA LIMPIO");
}
}
}
}