///Este proyecto es para lavadora con motor de 2 velocidades///
///para "Normal" y "Delicados"///
///con 2 switches; para agua fria y para agua caliente///
///con actuador de para lavar y centrifugar///
///con bomba de drenar electrica///
///con alarma al terminar
int LUZDELICADOS = 17;
int LUZNORMAL = 16;
int DELICADOS = 15;
int ACTUADORLAVAR = 3;
int INICIAR = 13;
int ENCENDIDA = 12;
int VALVULAS = 11;
int LLENANDO = 10;
int NORMAL = 9;
int LAVANDO = 8;
int DRENAR = 7;
int ESPRIMIR = 6;
int ACTUADOR = 5;
int LLENO = 4;
int ALARMA = 2;
int pausa = 2000;
//int TiempoLavando = 60 * 15000;//15 minutos lavando
//int TiempoLavandoDelicados = 60 * 10000;//10 minutos lavando
//int TiempoEsprimiendo = 60 * 5000;//5 minutos esprimiendo
//int TiempoDrenando = 60 * 2000;//2 minutos drenando agua
//int Enjuagando = 60 * 5000;//5 minutos enjuagando
////////SOLO PARA PRUEVA//////////
int TiempoLavando = 15000;//15 minutos lavando
int TiempoLavandoDelicados = 10000;//10 minutos lavando
int TiempoEsprimiendo = 5000;//5 minutos esprimiendo
int TiempoDrenando = 2000;//2 minutos drenando agua
int Enjuagando = 5000;//5 minutos enjuagando
////LOS TIEMPOS SON MAS CORTOS////////
void setup() {
pinMode(INICIAR, INPUT);//se declara como entrada
pinMode(VALVULAS, OUTPUT);//se declara como salida
pinMode(LLENANDO, 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(ESPRIMIR, OUTPUT);//se declara como salida
pinMode(ACTUADOR, OUTPUT);//se declara como salida
pinMode(ACTUADORLAVAR, INPUT);//se declara como entrada
pinMode(NORMAL, INPUT);//se declara como entrada
pinMode(ALARMA, OUTPUT);//se declara como salida
pinMode(DELICADOS, INPUT);//se declara como entrada
pinMode(LUZNORMAL, OUTPUT);//se declara como salida
pinMode(LUZDELICADOS, OUTPUT);//se declara como salida
}
void loop() {
//////////////////////////////////////
///////ARRANQUE DE LA LAVADORA///////
/////////EN POSISION NORMAL///////////
//////////////////////////////////////
if(digitalRead(NORMAL) == HIGH){//Cuando el switch esta en posision normal
while(digitalRead(INICIAR)!= HIGH){//mientra el boton de iniciar no sea oprimido
digitalRead(INICIAR)== HIGH;//y hasta que se oprima el boton de iniciar
}
digitalWrite(LUZNORMAL, HIGH);//enciende la luz que indica la posision normal
digitalWrite(ENCENDIDA, HIGH);//encielde la luz que indica que la lavadora esta prendida
delay(pausa);//da un tiempo de espera
digitalWrite(VALVULAS, HIGH);//enciende las valvulas de llenado de agua
digitalWrite(LLENANDO, HIGH);//encielde la luz que indica que esta llenando agua
///////////////////////////////
///////PRIMER CICLO//////////
/////////////////////////////////////
while(digitalRead(LLENO)== LOW){//mientras el presostato no manda señal por estar la tina vacia
digitalRead(LLENO)== HIGH;// y hasta que el persostato mande la señal de tina llena
}
digitalWrite(VALVULAS, LOW);//las valvulas de agua se apagan
digitalWrite(LLENANDO, LOW);//se apaga la luz de llenando
digitalWrite(ACTUADOR, HIGH);//activa el actuador para que enganche la tina para lavar
while(digitalRead(ACTUADORLAVAR)== LOW){//mientras el actuador esta en posision abierta
digitalRead(ACTUADORLAVAR)== HIGH;//y hasta que el actuador se sierre y mande la señal de enganchado
}
digitalWrite(ACTUADOR, LOW);//se apaga la corriente que activa el actuador
delay(pausa);//da un tiempo de espera
digitalWrite(LAVANDO, HIGH);//prende el motor para lavar
delay(TiempoLavando);//espera que pase el tiempo de lavado
digitalWrite(LAVANDO, LOW);//se apaga el motor de lavar
delay(pausa);//da un tiempo de espera
digitalWrite(ACTUADOR, HIGH);//activa el actuador para que desenganche la tina
while(digitalRead(ACTUADORLAVAR)== HIGH){//mientras el actuador esta en posision cerrada
digitalRead(ACTUADORLAVAR)== LOW;//y hasta que el actuador se sierre y mande la señal de desenganchado
}
digitalWrite(ACTUADOR, LOW);//desactiva el actuador cuando ya sesengancho la tina
delay(pausa);//da un tiempo de espera
digitalWrite(DRENAR, HIGH);//enciende la bomba de drenar
digitalWrite(ESPRIMIR, HIGH);//enciende el motor para esprimir
delay(TiempoDrenando);//espera a que drene el agua
digitalWrite(DRENAR, LOW);//apaga la bomba de drenar
delay(TiempoEsprimiendo);//espera que pase el tiempo de esprimir
digitalWrite(ESPRIMIR, LOW);//apaga el motor de esprimir
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
digitalWrite(LLENANDO, HIGH);//encielde la luz que indica que esta llenando agua
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
digitalWrite(LLENANDO, LOW);//se apaga la luz de llenando
digitalWrite(ACTUADOR, HIGH);//activa el actuador para que enganche la tina para lavar
while(digitalRead(ACTUADORLAVAR)== LOW){//mientras la señal del actuador esta abierta
digitalRead(ACTUADORLAVAR)== HIGH;//y hazta que la señal del actuador se cierre
}
digitalWrite(ACTUADOR, LOW);//se apaga la corriente que activa el actuador
delay(pausa);//da un tiempo de espera
digitalWrite(LAVANDO, HIGH);//prende el motor para lavar
delay(Enjuagando);//espera que pase el tiempo de Enjuagado
digitalWrite(LAVANDO, LOW);//se apaga el motor de lavar
delay(pausa);//da un tiempo de espera
digitalWrite(ACTUADOR, HIGH);//activa el actuador para que desenganche la tina
while(digitalRead(ACTUADORLAVAR)== HIGH){
digitalRead(ACTUADORLAVAR)== LOW;
}
digitalWrite(ACTUADOR, LOW);//desactiva el actuador cuando ya sesengancho la tina
delay(pausa);//da un tiempo de espera
digitalWrite(DRENAR, HIGH);//enciende la bomba de drenar
digitalWrite(ESPRIMIR, HIGH);//enciende el motor para esprimir
delay(TiempoDrenando);//espera a que drene el agua
digitalWrite(DRENAR, LOW);//apaga la bomba de drenar
delay(TiempoEsprimiendo);//espera que pase el tiempo de esprimir
digitalWrite(ESPRIMIR, LOW);//apaga el motor de esprimir
digitalWrite(ALARMA, HIGH);//Activa la alarma
delay(pausa);//da un tiempo de espera
digitalWrite(ALARMA, HIGH);//Apaga la alarma
digitalWrite(ENCENDIDA, LOW);//apaga la luz que indica que la lavadora esta prendida
digitalWrite(LUZNORMAL, LOW);
}
}
//////////////////////////////////////
///////ARRANQUE DE LA LAVADORA///////
/////////EN POSISION DELICADOS///////////
//////////////////////////////////////
if(digitalRead(NORMAL) == LOW){
while(digitalRead(INICIAR)!= HIGH){
digitalRead(INICIAR)== HIGH;
}
digitalWrite(LUZDELICADOS, HIGH);
digitalWrite(ENCENDIDA, HIGH);//encielde la luz que indica que la lavadora esta prendida
delay(pausa);//da un tiempo de espera
digitalWrite(VALVULAS, HIGH);//enciende las valvulas de llenado de agua
digitalWrite(LLENANDO, HIGH);//encielde la luz que indica que esta llenando agua
///////////////////////////////
///////PRIMER CICLO//////////
/////////////////////////////////////
while(digitalRead(LLENO)== LOW){
digitalRead(LLENO)== HIGH;
}
digitalWrite(VALVULAS, LOW);//las valvulas de agua se apagan
digitalWrite(LLENANDO, LOW);//se apaga la luz de llenando
digitalWrite(ACTUADOR, HIGH);//activa el actuador para que enganche la tina para lavar
while(digitalRead(ACTUADORLAVAR)== LOW){
digitalRead(ACTUADORLAVAR)== HIGH;
}
digitalWrite(ACTUADOR, LOW);//se apaga la corriente que activa el actuador
delay(pausa);//da un tiempo de espera
digitalWrite(LAVANDO, HIGH);//prende el motor para lavar
delay(TiempoLavandoDelicados);//espera que pase el tiempo de lavado
digitalWrite(LAVANDO, LOW);//se apaga el motor de lavar
delay(pausa);//da un tiempo de espera
digitalWrite(ACTUADOR, HIGH);//activa el actuador para que desenganche la tina
while(digitalRead(ACTUADORLAVAR)== HIGH){
digitalRead(ACTUADORLAVAR)== LOW;
}
digitalWrite(ACTUADOR, LOW);//desactiva el actuador cuando ya sesengancho la tina
delay(pausa);//da un tiempo de espera
digitalWrite(DRENAR, HIGH);//enciende la bomba de drenar
digitalWrite(ESPRIMIR, HIGH);//enciende el motor para esprimir
delay(TiempoDrenando);//espera a que drene el agua
digitalWrite(DRENAR, LOW);//apaga la bomba de drenar
delay(TiempoEsprimiendo);//espera que pase el tiempo de esprimir
digitalWrite(ESPRIMIR, LOW);//apaga el motor de esprimir
delay(pausa);//da un tiempo de espera
//////////////////////////////////////
///////ARRANQUE DE LA ENJUAGADA///////
//////////////////////////////////////
if (digitalRead(LLENO) == LOW) {
digitalWrite(VALVULAS, HIGH);//enciende las valvulas de llenado de agua
digitalWrite(LLENANDO, HIGH);//encielde la luz que indica que esta llenando agua
while(digitalRead(LLENO)== LOW){
digitalRead(LLENO)== HIGH;
}
digitalWrite(VALVULAS, LOW);//las valvulas de agua se apagan
digitalWrite(LLENANDO, LOW);//se apaga la luz de llenando
digitalWrite(ACTUADOR, HIGH);//activa el actuador para que enganche la tina para lavar
while(digitalRead(ACTUADORLAVAR)== LOW){
digitalRead(ACTUADORLAVAR)== HIGH;
}
digitalWrite(ACTUADOR, LOW);//se apaga la corriente que activa el actuador
delay(pausa);//da un tiempo de espera
digitalWrite(LAVANDO, HIGH);//prende el motor para lavar
delay(Enjuagando);//espera que pase el tiempo de Enjuagado
digitalWrite(LAVANDO, LOW);//se apaga el motor de lavar
delay(pausa);//da un tiempo de espera
digitalWrite(ACTUADOR, HIGH);//activa el actuador para que desenganche la tina
while(digitalRead(ACTUADORLAVAR)== HIGH){
digitalRead(ACTUADORLAVAR)== LOW;
}
digitalWrite(ACTUADOR, LOW);//desactiva el actuador cuando ya sesengancho la tina
delay(pausa);//da un tiempo de espera
digitalWrite(DRENAR, HIGH);//enciende la bomba de drenar
digitalWrite(ESPRIMIR, HIGH);//enciende el motor para esprimir
delay(TiempoDrenando);//espera a que drene el agua
digitalWrite(DRENAR, LOW);//apaga la bomba de drenar
delay(TiempoEsprimiendo);//espera que pase el tiempo de esprimir
digitalWrite(ESPRIMIR, LOW);//apaga el motor de esprimir
digitalWrite(ALARMA, HIGH);//Activa la alarma
delay(pausa);//da un tiempo de espera
digitalWrite(ALARMA, HIGH);//Apaga la alarma
digitalWrite(ENCENDIDA, LOW);//apaga la luz que indica que la lavadora esta prendida
digitalWrite(LUZDELICADOS, LOW);
}
}
}