Temporizador de lavadora
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Herramientas y máquinas necesarias
| ||||
| ||||
| ||||
|
Aplicaciones y servicios en línea
|
Acerca de este proyecto
Introducción
Esta es una pieza de repuesto para la lavadora que tengo que tiene un temporizador de lavado roto. El temporizador original era un temporizador mecánico / interruptor de dirección, que puede controlar el motor de la tina de lavado de la siguiente manera:
- Tome x minutos de entrada del tiempo de lavado del usuario
- Gire el motor de la tina de lavado en el sentido de las agujas del reloj durante unos segundos
- Detenga el motor durante unos segundos
- Gire el motor de la tina de lavado en sentido antihorario durante unos segundos
- Detenga el motor durante unos segundos
- Siga haciendo los últimos 4 pasos hasta que expire el temporizador de lavado
Voy a construir un temporizador electrónico que puede hacer la misma operación.
Demostración
El siguiente video demuestra el funcionamiento de este temporizador electrónico:
Hardware
- Arduino Pro Mini: Ejecuta código y controla todo
- 1306 OLED: Muestra las instrucciones del usuario y la cuenta atrás del temporizador
- Botón pulsador rojo / negro: Configurar el temporizador y ponerlo en marcha
- Módulos de relé de 5 V: Suministre energía CA al motor y controle la dirección
- Adaptador de 5 V: Encienda el temporizador electrónico
1306 OLED se suelda directamente en el pro mini así:
Módulo de 2 relés, 2 botones pulsadores, Arduino Pro Mini + 1306 OLED está conectado en una protoboard como esta -
Programación
Paso 1: Obtenga un módulo de serie Bluetooth HC-05 y cambie su velocidad en baudios a 57600 de acuerdo con este tutorial o este paso. Para realizar este paso se requerirá otro Arduino Uno o un módulo USB a Serie.
Utilice los siguientes comandos AT
AT
AT + UART =57600,0,0
AT + RESET
Paso 2: Después de que la velocidad en baudios se cambie a 57600, conecte el HC-05 a Arduino pro mini de acuerdo con el siguiente diagrama de cableado
Paso 3: Seleccione la placa de Arduino IDE, pegue el código y haga clic en cargar.
Estoy usando Bluetooth serial, porque habilita capacidades programables inalámbricas en el campo del sistema, lo que ayudó a actualizar el código en pro mini si es necesario.
Explicación del cableado y funcionamiento del dispositivo
El cableado puede variar para los modelos de lavadora más nuevos o diferentes, por lo que voy a explicar cuál es mi modelo. Preste atención al diagrama "Sharp" en la esquina inferior derecha, un ALAMBRE BLANCO viene de la red y va al temporizador de lavado, un ALAMBRE ROJO y un ALAMBRE AZUL sale del temporizador de lavado. He desconectado estos 3 cables del temporizador de lavado original (defectuoso) y los saqué a través de un orificio en la parte superior de la lavadora.
Cuando el CABLE BLANCO se cambia a CABLE ROJO, el motor gira en el sentido de las agujas del reloj y cuando el CABLE BLANCO se cambia al CABLE AZUL, el motor gira en el sentido contrario a las agujas del reloj.
Este temporizador electrónico fabricado con Arduino pro mini hará un seguimiento del tiempo de lavado, hará girar el motor de la tina de lavado en una dirección durante 5 segundos conectando los cables BLANCO y ROJO a través de un contacto de relé. Luego parará el motor y esperará 5 segundos. Después de eso, hará girar el motor de la bañera en la otra dirección durante 5 segundos conectando los cables BLANCO y AZUL a través del otro contacto de relé. Luego se detendrá y esperará otros 5 segundos. Todas estas secuencias de tiempo se pueden modificar desde el código si es necesario.
El siguiente diagrama muestra cómo se puede alterar la dirección del motor de CA simplemente cambiando la entrada de CA a una o la otra pierna del capacitor del motor.
Teoría del motor de inducción monofásico
Referencias
Puede obtener más información detallada sobre cada componente en estos tutoriales:
- Tutorial de retransmisión
- Tutorial de botones
¡Descargo de responsabilidad!
Este proyecto se ocupa del suministro de red de CA, hágalo bajo su propio riesgo !
Código
- Archivo sin título
Archivo sin título C / C ++
#include "U8glib.h" // SSD1306 oled wavehare (clk, din, cs, d / c, res); U8GLIB_SSD1306_128X64 u8g (A4, A5,12,11,10); volatile int rbc =0; volatile int bbc =0; int sec =0; int mi =0; int motor_rotation =0; configuración vacía () {u8g.setRot180 (); analogReference (INTERNAL); pinMode (2, INPUT_PULLUP); pinMode (3, INPUT_PULLUP); attachInterrupt (0, ISR_SW_RED, FALLING); attachInterrupt (1, ISR_SW_BLACK, FALLING); pinMode (5, SALIDA); digitalWrite (5, BAJO); pinMode (4, SALIDA); digitalWrite (4, LOW);} bucle vacío (void) {while (! rbc) {// muestra el menú de configuración del temporizador u8g.firstPage (); hacer {draw_menu (); } while (u8g.nextPage ()); // muestra el mensaje de funcionamiento correcto del usuario if (rbc> 0 &&bbc ==0) {u8g.firstPage (); hacer {draw_message (); } while (u8g.nextPage ()); retraso (2000); rbc =0; //u8g.clear (); }} // iniciar el temporizador if (rbc> 0) {sec =59; mi =bbc-1; while (mi> =0) {// muestra el mensaje del temporizador de cuenta regresiva unsigned long temp =millis () + 1000; while (temp> =millis ()) {u8g.firstPage (); hacer {draw_timer (); } while (u8g.nextPage ()); } seg =seg-1; si (sec% 5 ==0) {control_motor (); // llamar cada 5 segundos} if (sec <=0) {sec =59; mi =mi - 1; }} rbc =0; bbc =0; mi =0; sec =0; escritura digital (5, BAJA); escritura digital (6, BAJA); }} // fin de loopvoid draw_menu (void) {u8g.setFont (u8g_font_timB24); if (bbc <10) {u8g.drawStr (22,30, "0"); u8g.setPrintPos (38,30); u8g.print (bbc); } else {u8g.setPrintPos (22,30); u8g.print (bbc); } u8g.drawStr (54,30, ":00"); u8g.setFont (u8g_font_8x13); u8g.drawStr (0,62, "'TEMPORIZADOR DE LAVADO'"); u8g.setFont (u8g_font_5x8); u8g.drawStr (0,47, "Rojo:INICIO Negro:CONFIGURAR HORA"); } void draw_message (void) {u8g.setFont (u8g_font_8x13); u8g.drawStr (0,10, "CONFIGURAR TEMPORIZADOR DE LAVADO"); u8g.drawStr (0,23, "PRIMERO PULSANDO"); u8g.drawStr (0,36, "EL BOTÓN NEGRO"); // u8g.setFont (u8g_font_8x13); u8g.drawStr (0,62, "'TEMPORIZADOR DE LAVADO'"); u8g.setFont (u8g_font_5x8); u8g.drawStr (0,47, "Rojo:INICIO Negro:CONFIGURAR HORA"); } void draw_timer (void) {u8g.setFont (u8g_font_timB24); si (mi <10) {u8g.drawStr (22,30, "0"); u8g.setPrintPos (38,30); u8g.print (mi); } else {u8g.setPrintPos (22,30); u8g.print (mi); } u8g.drawStr (54,30, ":"); if (sec <10) {u8g.drawStr (70,30, "0"); u8g.setPrintPos (86,30); u8g.print (segundos); } else {u8g.setPrintPos (70,30); u8g.print (seg); } if (motor_rotation ==0) {u8g.setFont (u8g_font_5x8); u8g.drawStr (0,47, "MOTOR DE LAVADO CW Spin"); escritura digital (5, ALTA); } if (motor_rotation ==1) {u8g.setFont (u8g_font_5x8); u8g.drawStr (0,47, "MOTOR DE LAVADO DETENIDO"); escritura digital (5, BAJA); escritura digital (4, BAJA); } if (motor_rotation ==2) {u8g.setFont (u8g_font_5x8); u8g.drawStr (0,47, "MOTOR DE LAVADO Giro en sentido antihorario"); escritura digital (4, ALTA); } if (motor_rotation ==3) {u8g.setFont (u8g_font_5x8); u8g.drawStr (0,47, "MOTOR DE LAVADO DETENIDO"); escritura digital (5, BAJA); escritura digital (4, BAJA); } u8g.setFont (u8g_font_8x13); u8g.drawStr (0,62, "'TEMPORIZADOR DE LAVADO'"); } anular ISR_SW_RED () {sei (); rbc ++; cli ();} void ISR_SW_BLACK () {sei (); bbc ++; cli ();} void control_motor () {motor_rotation ++; if (motor_rotation> 3) {motor_rotation =0; }}
Esquemas
Proceso de manufactura