///Este proyecto es para Dishwasher///
//Con LCD1602 IIC I2C Serial Interface Board Module Address Changeable//
///con bomba de drenar electrica///
///con solenoide para la puerta del jabon///
//con barra de proceso (">>>>>>>>>>>>>>>>")//
#include <LiquidCrystal_I2C.h> // if you don´t have I2C version of the display, use LiquidCrystal.h library instead
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
byte uno[] = {
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111
};
byte dos[] = {
B00010,
B00011,
B00010,
B00010,
B00010,
B01110,
B11110,
B10010
};
int INICIAR = 13;
int VALVULAS = 6;
int LLENO = 5;
int LAVANDO = 4;
int DRENAR = 3;
int SECANDO = 2;
int JABON = 1;
int pausa = 2000;
int flechas = 500;//velocidad de las flechas
int letras = 100;//velocidad de las letras
int TiempoLavando = 4;//8 segundos, por cada ciclo del for//
//por tanto para lavar 10 minutos se ocupa poner el numero 600//
int TiempoEnjuagando = 2;//8 segundos, por cada ciclo del for//
//por tanto para enjuagar 5 minutos se ocupa poner el numero 300//
int TiempoSecando = 3;//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);//Inicia la pantalla
lcd.createChar(1, uno);
lcd.createChar(2, dos);
lcd.backlight(); // enable backlight for the LCD module
lcd.setCursor(3,0);//coloca el cursor en la posision 3 del renglon de arriba
//=============================================================================//
String message = "BIENVENIDO";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message.length(); i++) { //
lcd.print(message[i]); //
delay(letras); //
} //
//============================================================================//
lcd.setCursor(0,1);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
delay(500);
lcd.clear();
lcd.setCursor(1,0);
//===============================================================================//
String message1 = "PONLE JABON Y";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message1.length(); i++) { //
lcd.print(message1[i]); //
delay(letras); //
} //
//=============================================================================//
lcd.setCursor(0,1);
//=================================================================================//
String message2 = "PRESIONA INICIAR";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message2.length(); i++) { //
lcd.print(message2[i]); //
delay(letras); //
} //
//===============================================================================//
}
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
lcd.clear();
lcd.setCursor(1,0);
String message = "LLENANDO AGUA";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message.length(); i++) {
lcd.print(message[i]);
delay(letras);
}
for (int cuenta = 0; digitalRead(LLENO) != HIGH; cuenta ++) {
lcd.clear();
lcd.setCursor(1,0);
lcd.print("LLENANDO AGUA");
lcd.setCursor(0,1);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
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);
//=============================================================================//
String message1 = "ESTA LLENA";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message1.length(); i++) { //
lcd.print(message1[i]); //
delay(letras); //
} //
//===========================================================================//
delay(pausa);//da un tiempo de espera
lcd.clear();
lcd.setCursor(3,0);
//=============================================================================//
String message2 = "INICIANDO";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message2.length(); i++) { //
lcd.print(message2[i]); //
delay(letras); //
} //
//=============================================================================//
lcd.setCursor(2,1);
//=============================================================================//
String message3 = "PRE ENJUAGUE";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message3.length(); i++) { //
lcd.print(message3[i]); //
delay(letras); //
} //
//=============================================================================//
delay(pausa);//da un tiempo de espera
digitalWrite(LAVANDO, HIGH);//prende el motor para lavar
lcd.clear();
lcd.setCursor(2,0);
String message4 = "PRE ENJUAGUE";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message4.length(); i++) {
lcd.print(message4[i]);
delay(letras);
}
for (int cuenta = 0; cuenta < TiempoEnjuagando; cuenta ++) {
lcd.clear();
lcd.setCursor(2,0);
lcd.print("PRE ENJUAGUE");
lcd.setCursor(0,1);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
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
lcd.clear();
lcd.setCursor(4,0);
String message5 = "DRENANDO";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message5.length(); i++) {
lcd.print(message5[i]);
delay(letras);
}
for (int cuenta = 0; digitalRead(LLENO) != LOW; cuenta ++) {
lcd.clear();
lcd.setCursor(4,0);
lcd.print("DRENANDO");
lcd.setCursor(0,1);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
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
lcd.clear();
lcd.setCursor(1,0);
String message6 = "LLENANDO AGUA";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message6.length(); i++) {
lcd.print(message6[i]);
delay(letras);
}
for (int cuenta = 0; digitalRead(LLENO) != HIGH; cuenta ++) {
lcd.clear();
lcd.setCursor(1,0);
lcd.print("LLENANDO AGUA");
lcd.setCursor(0,1);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
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);
//=============================================================================//
String message7 = "ESTA LLENA";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message7.length(); i++) { //
lcd.print(message7[i]); //
delay(letras); //
} //
//=============================================================================//
delay(pausa);//da un tiempo de espera
lcd.clear();
lcd.setCursor(0,0);
//=============================================================================//
String message8 = "INICIANDO LAVADO";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message8.length(); i++) { //
lcd.print(message8[i]); //
delay(letras); //
} //
//=============================================================================//
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
lcd.clear();
lcd.setCursor(1,0);
//=============================================================================//
String message20 = "ECHANDO JABON";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message20.length(); i++) { //
lcd.print(message20[i]); //
delay(letras); //
} //
//=============================================================================//
delay(pausa);//da un tiempo de espera
lcd.clear();
lcd.setCursor(4,0);
String message9 = "LAVANDO";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message9.length(); i++) {
lcd.print(message9[i]);
delay(letras);
}
for (int cuenta = 0; cuenta < TiempoLavando; cuenta ++) {
lcd.clear();
lcd.setCursor(4,0);
lcd.print("LAVANDO");
lcd.setCursor(0,1);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
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
lcd.clear();
lcd.setCursor(4,0);
String message10 = "DRENANDO";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message10.length(); i++) {
lcd.print(message10[i]);
delay(letras);
}
for (int cuenta = 0; digitalRead(LLENO) != LOW; cuenta ++) {
lcd.clear();
lcd.setCursor(4,0);
lcd.print("DRENANDO");
lcd.setCursor(0,1);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
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
lcd.clear();
lcd.setCursor(1,0);
String message11 = "LLENANDO AGUA";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message11.length(); i++) {
lcd.print(message11[i]);
delay(letras);
}
for (int cuenta = 0; digitalRead(LLENO) != HIGH; cuenta ++) {
lcd.clear();
lcd.setCursor(1,0);
lcd.print("LLENANDO AGUA");
lcd.setCursor(0,1);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
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);
//=============================================================================//
String message12 = "ESTA LLENA";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message12.length(); i++) { //
lcd.print(message12[i]); //
delay(letras); //
} //
//=============================================================================//
delay(pausa);//da un tiempo de espera
lcd.clear();
lcd.setCursor(3,0);
//=============================================================================//
String message13 = "INICIANDO";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message13.length(); i++) { //
lcd.print(message13[i]); //
delay(letras); //
} //
//=============================================================================//
lcd.setCursor(3,1);
//=============================================================================//
String message14 = "ENJUAGADA";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message14.length(); i++) { //
lcd.print(message14[i]); //
delay(letras); //
} //
//=============================================================================//
delay(pausa);//da un tiempo de espera
digitalWrite(LAVANDO, HIGH);//prende el motor para lavar
lcd.clear();
lcd.setCursor(3,0);
String message15 = "ENJUAGANDO";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message15.length(); i++) {
lcd.print(message15[i]);
delay(letras);
}
for (int cuenta = 0; cuenta < TiempoEnjuagando; cuenta ++) {
lcd.clear();
lcd.setCursor(3,0);
lcd.print("ENJUAGANDO");
lcd.setCursor(0,1);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
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
lcd.clear();
lcd.setCursor(4,0);
String message16 = "DRENANDO";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message16.length(); i++) {
lcd.print(message16[i]);
delay(letras);
}
for (int cuenta = 0; digitalRead(LLENO) != LOW; cuenta ++) {
lcd.clear();
lcd.setCursor(4,0);
lcd.print("DRENANDO");
lcd.setCursor(0,1);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
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
lcd.clear();
lcd.setCursor(4,0);
String message17 = "SECANDO";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message17.length(); i++) {
lcd.print(message17[i]);
delay(letras);
}
for (int cuenta = 0; cuenta < TiempoSecando; cuenta ++) {
lcd.clear();
lcd.setCursor(4,0);
lcd.print("SECANDO");
lcd.setCursor(0,1);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
lcd.write(1);
delay(flechas);
}
delay(pausa);
digitalWrite(SECANDO, LOW);//apaga la resistensia de secar
lcd.clear();
lcd.setCursor(2,0);
//===============================================================================//
String message18 = "HA TERMINADO";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message18.length(); i++) { //
lcd.print(message18[i]); //
delay(letras); //
} //
//==============================================================================//
delay(pausa);
lcd.setCursor(0,1);
//===================================================================================//
String message19 = "TODO ESTA LIMPIO";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message19.length(); i++) { //
lcd.print(message19[i]); //
delay(letras); //
} //
//=================================================================================//
}
}
}
}