Electroduende
EElleeccttrroodduueennddee MMiill
Suscribirse a ElectroDuende
Entradas
Comentarios
ste es el
programador
averiado de
la lavadora,
fotos de la
cara
anterior y posterior. Del circuito
desold los componentes que creo
reciclar. Una vez extrados los
componentes dej limpia la placa y lijada, con el fin de construir sobre
la misma placa el nuevo programador.
Aqu la
construccin
del
programador
con un LCD
de 4 x 20
para visualizar el desarrollo, es
ms resultn para la realizacin del
proyecto introducir una pantalla de
este tipo que una multitud de led y su correspondiente cableado, que al
fin y al cabo no ofrecer tanta informacin como la pantalla.
Al final, no caban todos los componentes en la placa antigua, por lo
que el frontal de la lavadora, unicamente dispone de los botones y
pantalla lcd.
Para el proyecto necesit una placa Arduino UNO, he utilizado una placa
compatible de las baratas, eso si,
me ha dado algunos dolores de
cabeza, algunos pines en esta placa
estn cambiados el HIGH con el LOW,
por lo tanto mi consejo es que si
puedes, te compres una original.
OOJJOO,, nnoo mmee hhaaggoo rreessppoonnssaabbllee ddee llooss ddaaooss qquuee ppuueeddaass
ooccaassiioonnaarr dduurraannttee eell mmaanneejjoo ddee pprroodduuccttooss,, ssii lloo hhaacceess eess
bbaajjoo ttuu rreessppoonnssaabbiilliiddaadd..
//Designando pines
#define OFF HIGH //no encuentro explicacin porque me funcionan al contrario (@####@@#@#@#aaaaaarrrrrrgggggggg)
#define ON LOW
#define PinSinUtilizar0 0 //PIN SIN UTILIZAR
#define MotorVelocidad1 1 //pin lavado lento
#define MotorVelocidad2 2 //pin centrifugado lento
#define MotorVelocidad3 3 //pin centrifugado rapido
// BOTONES
#define BotonTemperatura 4 //pin boton de temperatura
#define BotonCentrifugado 5 // pin boton de seleccin velocidad centrifugado
#define BotonInicio 6 //pin boton de inicio
//#define PinBuzzer 7 //BUZZER MUSICA FINAL
#define CalentadorAgua 8 // pin enciende resistencia
#define VaciadoPin 9 //pin bomba desague
#define AguaIn1 11 //pin electrovalcula prelavado o suavizante
#define AguaIn2 10 //pin electrovalcula lavado o jabn
#define Hidronivel 12 // pin hidronivel
//#define PinPuerta 13 //PIN PUERTA
// Analgicos
#define tempSensor A4 //pin thermistor
//#define botonGO A1
//#define botonStop A2
//#define PinSinUtilizarA3 A3 //PIN SIN UTILIZAR
//#define PinSinUtilizarA4 A4 //PIN SIN UTILIZAR
//#define PinPuerta A5 //PIN PUERTA
vvooiidd setup () {
Wire.begin(); // Usado por el RTC
RTC.begin(); // Igualmente
lcd.begin(20,4); // 20x4 LCD Panel
}
digitalWrite(CalentadorAgua, OFF);
delay(100);
digitalWrite(MotorVelocidad1, LOW);
delay(100);
lcd.begin(20,4);
lcd.clear();
}
vvooiidd CentrifugadoSuave(uunnssiiggnneedd lloonngg tiempo) {
lcd.begin(20,4); // La pantalla aparece cuando el motor entra en accin
digitalWrite(VaciadoPin, ON);
uunnssiiggnneedd lloonngg tmpmotorgiro = millis();
wwhhiillee ((millis() - tmpmotorgiro) < tiempo) { //mientras lavado, gira en motor en ambos sentidos
//digitalWrite(MotorVelocidad1, HIGH);
//digitalWrite(MotorVelocidad2, HIGH);
digitalWrite(MotorVelocidad3, HIGH); //solo el 3 500 rpm
delay(100);
muestraPantalla(6);
}
digitalWrite(MotorVelocidad1, LOW);
digitalWrite(MotorVelocidad2, LOW);
digitalWrite(MotorVelocidad3, LOW);
delay(10000);
digitalWrite(VaciadoPin, OFF);
lcd.begin(20,4);
lcd.clear();
}
vvooiidd CentrifugadoFuerte(uunnssiiggnneedd lloonngg tiempo) {
lcd.begin(20,4); // La pantalla aparece cuando el motor entra en accin
uunnssiiggnneedd lloonngg tmpmotorgiro = millis();
wwhhiillee ((millis() - tmpmotorgiro) < tiempo) { //mientras lavado, gira en motor en ambos sentidos
// 1500 rpm
digitalWrite(MotorVelocidad1, HIGH);
digitalWrite(MotorVelocidad2, HIGH);
digitalWrite(MotorVelocidad3, HIGH);
digitalWrite(VaciadoPin, ON);
delay(100);
muestraPantalla(7);
}
delay(10000);
digitalWrite(VaciadoPin, OFF);
delay(100);
digitalWrite(MotorVelocidad1, LOW);
digitalWrite(MotorVelocidad2, LOW);
digitalWrite(MotorVelocidad3, LOW);
delay(100);
lcd.begin(20,4);
lcd.clear();
}
vvooiidd musica(){
ffoorr (iinntt thisNote = 0; thisNote < 18; thisNote++) {
iinntt noteDuration = 1000/noteDurations[thisNote];
tone(7, melody[thisNote],noteDuration); //conecta el pin 7
iinntt pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
noTone(7); //desconecta el pin 7
}
}
//==================================================================================================
//==================================================================================================
//==================================================================================================
vvooiidd muestraPantalla(byte currentMode) { // No estoy contento con esta rutina. Necesita trabajarla
uunnssiiggnneedd lloonngg elapsedSeconds = ((millis() - cycleStart) / 1000); // Vamos con el nmero de segundos transcurridos
uunnssiiggnneedd lloonngg elapsedMinutes = (elapsedSeconds / 60);
uunnssiiggnneedd lloonngg elapsedHours = (elapsedMinutes / 60);
lcd.setCursor(0,0);
lcd.print(F("Tiempo lavado: "));
iiff (elapsedHours > 0) { // No mostrar las horas transcurridas si ha transcurrido menos de una hora.
lcd.print(elapsedHours);
lcd.print(':');
iiff (elapsedHours == 1) elapsedMinutes -= 60;
iiff (elapsedHours == 2) elapsedMinutes -= 120;
}
iiff (elapsedMinutes < 10) { // Slo muestra un solo dgito, por lo que necesita un cero de ms.
lcd.print('0');
}
//temperatura
iinntt val;//Crea una variable entera
iinntt temp;//Variable de temperatura = temp
val=analogRead(A4);//Lee el valor del pin analogo 2 y lo mantiene como val
temp=Termistor(val);//Realiza la conversin del valor analogico a grados Celsius
//temperatura
lcd.print(elapsedMinutes);
lcd.setCursor(0,1);
lcd.print(F("Temp Agua: "));
lcd.print(temp);
delay (1000);
lcd.print('C');
lcd.setCursor(0,3);
sswwiittcchh (currentMode) {
ccaassee 0:
lcd.print(F("Iniciando"));
bbrreeaakk;
ccaassee 1:
lcd.print(F("Llenando"));
bbrreeaakk;
ccaassee 2:
lcd.print(F("Vaciando"));
bbrreeaakk;
ccaassee 3:
lcd.print(F("Lavando ropa"));
bbrreeaakk;
ccaassee 4:
lcd.print(F("10 minutos Prelavado"));
bbrreeaakk;
ccaassee 5:
lcd.print(F("Suavizante"));
bbrreeaakk;
ccaassee 6:
lcd.print(F("Centrifugado suave"));
bbrreeaakk;
ccaassee 7:
lcd.print(F("Centrifugado fuerte"));
bbrreeaakk;
}
}
lcd.clear();
lcd.setCursor(0,1);
lcd.print(F("Temp Agua: "));
lcd.print(temp);
delay (1000);
lcd.print('C');
while (temp < 65) {//mientras no alcance la temperatura esta activado la resistencia calentadora de agua
digitalWrite(CalentadorAgua, ON);
delay(100);
temp=Termistor(val);//devuelve la temperatura
lcd.clear();
lcd.setCursor(0,1);
lcd.print(F("Temp Agua: "));
lcd.print(temp);
delay (1000);
lcd.print('C');
}
digitalWrite(CalentadorAgua, OFF);
*/
}
10 comentarios:
MMeettaa 17 de junio de 2015, 2:05
Hola:
2) Hay condensadores que no has puesto en la lista sobre los voltajes, por
ejemplo:
Respuestas
RReessppoonnddeerr
Cuando puedas, si actualizas al final el esquema, avisas por aqu como que
has actualizado, as me lleva un mensaje y me entero. Si llegas hacer la
placa por ti mismo sobre el TDA1085C, tambin, para verlo. As me cuentas
tus experiencias, de paso, lo monto.
Otras personas me han contado que mejor hacerlo con tres optoacopladores,
dos de entrada y uno de salida. Estas so nsus palabras.
Respuestas
RReessppoonnddeerr
Saludos.
Responder
AAnnttoonniioo33000000 28 de noviembre de 2016, 7:15
Que sepas que esto es paja, el mio va a estar mejor
saludos
Responder
Respuestas
RReessppoonnddeerr
AAaaddiirr ccoommeennttaarriioo
Introduce tu comentario...
Plantilla Sencillo. Las imgenes de las plantillas son obra de fpm. Con la tecnologa de Blogger.