Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Temporizador Inteligente para Lavadora con Arduino Pro Mini y Pantalla OLED

Componentes y suministros

SparkFun Arduino Pro Mini 328 - 5V/16MHz × 1
Pantalla OLED 1306 × 1
DFRobot Gravity: Pulsador Digital (Amarillo) × 2
Seeed Grove - Relé SPDT de 2 Canales × 1
Fuente de alimentación conmutada Digilent 5V 2.5A × 1
SparkFun USB UART Serial Breakout - CY7C65213 × 1
Módulo Bluetooth HC-05 × 1

Herramientas y máquinas necesarias

Aplicaciones y servicios en línea

Sobre el proyecto

Introducción

Este proyecto surge como reemplazo del temporizador mecánico de una lavadora que se ha averiado. El temporizador original era un interruptor de dirección mecánico que controlaba el motor del tambor de la siguiente manera:

El objetivo es construir un temporizador electrónico que realice la misma operación.

Demostración

El siguiente video muestra el funcionamiento de este temporizador electrónico:

Hardware

La pantalla OLED 1306 está soldada directamente sobre el Pro Mini:

Temporizador Inteligente para Lavadora con Arduino Pro Mini y Pantalla OLED

El módulo de 2 relés, los 2 pulsadores, el Arduino Pro Mini + OLED 1306 están conectados en una protoboard:

Temporizador Inteligente para Lavadora con Arduino Pro Mini y Pantalla OLED
Temporizador Inteligente para Lavadora con Arduino Pro Mini y Pantalla OLED

Programación

Paso 1: Consiga un módulo Bluetooth-Serial HC-05 y cambie su velocidad (baud rate) a 57600 siguiendo este tutorial o este paso. Para ello necesitará otro Arduino Uno o un módulo USB-Serie.

Utilice los siguientes comandos AT:

AT
AT+UART = 57600,0,0
AT+RESET

Paso 2: Tras cambiar la velocidad a 57600, conecte el HC-05 al Arduino Pro Mini según el siguiente diagrama de cableado:

Temporizador Inteligente para Lavadora con Arduino Pro Mini y Pantalla OLED

Paso 3: Seleccione la placa en el Arduino IDE, pegue el código y haga clic en Subir.

Temporizador Inteligente para Lavadora con Arduino Pro Mini y Pantalla OLED

Se utiliza Bluetooth serial porque permite la programación inalámbrica en el sistema (field programmable), lo que facilita actualizar el código en el Pro Mini si fuera necesario.

Cableado y funcionamiento del dispositivo explicados

El cableado puede variar según modelos de lavadora más nuevos o diferentes, así que explicaré el mío. Preste atención al diagrama "Sharp" en la esquina inferior derecha: un cable BLANCO viene de la red eléctrica y va al temporizador de lavado; un cable ROJO y un cable AZUL salen del temporizador. He desconectado estos 3 cables del temporizador original (averiado) y los he sacado por un orificio en la parte superior de la lavadora.

Temporizador Inteligente para Lavadora con Arduino Pro Mini y Pantalla OLED
Temporizador Inteligente para Lavadora con Arduino Pro Mini y Pantalla OLED

Cuando el cable BLANCO se conecta al ROJO, el motor gira en sentido horario; cuando se conecta al AZUL, gira en sentido antihorario.

Este temporizador electrónico con Arduino Pro Mini controla el tiempo de lavado, gira el motor del tambor en una dirección durante 5 segundos conectando los cables BLANCO y ROJO a través de un contacto de relé. Luego detiene el motor y espera 5 segundos. Después gira en la dirección opuesta durante 5 segundos conectando los cables BLANCO y AZUL mediante el otro contacto de relé. Finalmente detiene y espera otros 5 segundos. Toda esta secuencia de tiempos puede modificarse en el código si es necesario.

El siguiente diagrama muestra cómo, simplemente cambiando la entrada de CA de un lado a otro del capacitor del motor, se invierte la dirección de giro de un motor monofásico de inducción.

Temporizador Inteligente para Lavadora con Arduino Pro Mini y Pantalla OLED

Teoría del motor de inducción monofásico

Referencias

Puede obtener más detalles sobre cada componente en estos tutoriales:

¡Descargo de responsabilidad!

¡Este proyecto trabaja con corriente alterna de la red eléctrica, hágalo bajo su propio riesgo!

Código

Archivo principal C/C++
#include "U8glib.h" //SSD1306 oled waveshare(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;

void setup() {
  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,OUTPUT);
  digitalWrite(5,LOW);
  pinMode(4,OUTPUT);
  digitalWrite(4,LOW);
}

void loop(void) {
  while(!rbc) {
    // mostrar menú de ajuste de tiempo
    u8g.firstPage();
    do {
      draw_menu();
    } while( u8g.nextPage() );
    // mostrar mensaje de operación correcta
    if (rbc>0 && bbc==0) {
      u8g.firstPage();
      do {
        draw_message();
      } while( u8g.nextPage() );
      delay(2000);
      rbc=0;
    }
  }
  // iniciar temporizador
  if(rbc>0) {
    sec =59;
    mi = bbc-1;
    while(mi>=0) {
      // mostrar cuenta regresiva
      unsigned long temp = millis()+1000;
      while(temp>=millis()) {
        u8g.firstPage();
        do {
          draw_timer();
        } while( u8g.nextPage() );
      }
      sec=sec-1;
      if(sec%5==0) {
        control_motor(); // llamar cada 5 seg
      }
      if (sec <= 0) {
        sec = 59;
        mi = mi - 1;
      }
    }
    rbc = 0;
    bbc = 0;
    mi = 0 ;
    sec = 0;
    digitalWrite(5,LOW);digitalWrite(6,LOW);
  }
}// end of loop

void 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," 'WASHING TIMER'");
  u8g.setFont(u8g_font_5x8);
  u8g.drawStr( 0,47,"Red:START Black:SET TIME");
}

void draw_message(void) {
  u8g.setFont(u8g_font_8x13);
  u8g.drawStr( 0,10," SET WASH TIMER");
  u8g.drawStr( 0,23,"FIRST BY PUSHING");
  u8g.drawStr( 0,36,"THE BLACK BUTTON");
  u8g.drawStr( 0,62," 'WASHING TIMER'");
  u8g.setFont(u8g_font_5x8);
  u8g.drawStr( 0,47,"Red:START Black:SET TIME");
}

void draw_timer(void) {
  u8g.setFont(u8g_font_timB24);
  if (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(sec);
  } else {
    u8g.setPrintPos(70,30);u8g.print(sec);
  }
  if(motor_rotation==0) {
    u8g.setFont(u8g_font_5x8);
    u8g.drawStr( 0,47," WASHING MOTOR CW Spin");
    digitalWrite(5,HIGH);
  }
  if(motor_rotation==1) {
    u8g.setFont(u8g_font_5x8);
    u8g.drawStr( 0,47," WASHING MOTOR STOPPED ");
    digitalWrite(5,LOW);digitalWrite(4,LOW);
  }
  if(motor_rotation==2) {
    u8g.setFont(u8g_font_5x8);
    u8g.drawStr( 0,47," WASHING MOTOR CCW Spin");
    digitalWrite(4,HIGH);
  }
  if(motor_rotation==3) {
    u8g.setFont(u8g_font_5x8);
    u8g.drawStr( 0,47," WASHING MOTOR STOPPED ");
    digitalWrite(5,LOW);digitalWrite(4,LOW);
  }
  u8g.setFont(u8g_font_8x13);
  u8g.drawStr( 0,62," 'WASHING TIMER'");
}

void 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

Temporizador Inteligente para Lavadora con Arduino Pro Mini y Pantalla OLED Temporizador Inteligente para Lavadora con Arduino Pro Mini y Pantalla OLED

Proceso de manufactura

  1. Equipos de EEG: Diseño, fabricación y aplicaciones emergentes
  2. Máquinas expendedoras: Una industria de 36.600 millones de dólares en EE. UU.
  3. Máquinas de Votar: Historia, Tecnología y Estándares
  4. Guía Experta de Máquinas Cambiadoras Modernas: Diseño, Componentes y Tendencias Futuras
  5. Visión Integral de los Electrocardiógrafos Modernos: Tecnología, Fabricación e Innovaciones Futuras
  6. La evolución y fabricación de máquinas de coser: de la innovación del siglo XIX a la automatización moderna
  7. Máquinas de ordeño: diseño, historia e innovaciones futuras
  8. Pantis: Guía Definitiva de la Media Elegante para Mujer
  9. Partes Esenciales del Torno: Funciones, Componentes y Mantenimiento
  10. El Torno: Historia, Tipos, Principio de Funcionamiento, Partes y Aplicaciones
  11. Componentes Clave de una Fresadora Explicados