Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Temporizador da máquina de lavar

Componentes e suprimentos

SparkFun Arduino Pro Mini 328 - 5 V / 16 MHz
× 1
Tela OLED 1306
× 1
DFRobot Gravity:Digital Push Button (Yellow)
× 2
Seeed Grove - Relé SPDT de 2 canais
× 1
Fonte de alimentação chaveada Digilent 5V 2.5A
× 1
SparkFun USB UART Serial Breakout - CY7C65213
× 1
Módulo Bluetooth HC-05
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)
Pistola de cola quente (genérica)
Fita dupla face
Fita verde

Aplicativos e serviços online

Arduino IDE

Sobre este projeto





Introdução


Esta é uma peça de reposição para a máquina de lavar que tenho e o cronômetro de lavagem está quebrado. O temporizador original era um temporizador mecânico / interruptor de direção, que pode controlar o motor da cuba de lavagem da seguinte maneira:
  • Tire x minutos de entrada de tempo de lavagem do usuário
  • Gire o motor da cuba de lavagem no sentido horário por alguns segundos
  • Pare o motor por alguns segundos
  • Gire o motor da cuba de lavagem no sentido anti-horário por alguns segundos
  • Pare o motor por alguns segundos
  • Continue fazendo as últimas 4 etapas até que o cronômetro de lavagem expire

Vou construir um cronômetro eletrônico que pode fazer a mesma operação.





Demo


O vídeo a seguir demonstra o funcionamento deste cronômetro eletrônico:





Hardware

  • Arduino Pro Mini: Executa o código e controla tudo
  • 1306 OLED: Mostrar instruções do usuário e contagem regressiva do cronômetro
  • Botão vermelho / preto: Defina o cronômetro e inicie o cronômetro
  • Módulos de relé 5V: Fornecer energia CA ao motor e direção de controle
  • Adaptador 5V: Ligue o cronômetro eletrônico

1306 OLED é soldado diretamente no mini pro assim:

Módulo de 2 relés, 2 botões de pressão, Arduino Pro Mini + 1306 OLED está conectado em um protoboard como este -





Programação


Etapa 1: Obtenha um módulo serial Bluetooth HC-05 e altere sua taxa de transmissão para 57600 de acordo com este tutorial ou esta etapa. Para realizar esta etapa, será necessário outro Arduino Uno ou um módulo USB para serial.

Use os seguintes comandos AT
  AT 
AT + UART =57600,0,0
AT + RESET

Etapa 2: Após a taxa de transmissão ser alterada para 57600, conecte o HC-05 ao Arduino pro mini de acordo com o seguinte diagrama de fiação

Etapa 3: Selecione a placa do Arduino IDE, cole o código e clique em upload.

Estou usando o Bluetooth serial, porque ele habilita recursos programáveis ​​de campo do sistema sem fio, o que ajudou a atualizar o código no pro mini, se necessário.





Fiação e operação do dispositivo explicada


A fiação pode variar para modelos de máquina de lavar mais novos / diferentes, então vou explicar sobre o meu. Preste atenção no diagrama "Sharp" no canto inferior direito, um WHITE WIRE está saindo da rede elétrica e indo para o cronômetro de lavagem, um RED WIRE e um BLUE WIRE saindo do cronômetro de lavagem. Desconectei esses três fios do cronômetro de lavagem original (com defeito) e os tirei por um orifício na parte superior da máquina de lavar.

Quando WHITE WIRE é alternado para RED WIRE o motor gira no sentido horário e quando WHITE WIRE é alternado para BLUE WIRE o motor gira no sentido anti-horário.

Este cronômetro eletrônico feito com o Arduino pro mini manterá o controle do tempo de lavagem, girará o motor da cuba em uma direção por 5 segundos conectando os fios BRANCO e VERMELHO através de um contato de relé. Em seguida, ele irá parar o motor e aguardar 5 segundos. Depois disso, ele girará o motor do was tub na outra direção por 5 segundos, conectando os fios BRANCO e AZUL através do outro contato de relé. Em seguida, ele irá parar e aguardar por mais 5 segundos. Todas essas sequências de tempo podem ser modificadas a partir do código, se necessário.

O diagrama a seguir mostra como simplesmente invertendo a rede de entrada CA para uma perna ou a outra perna do capacitor do motor, a direção do motor CA pode ser alterada.

Teoria do motor de indução monofásico





Referências


Você pode aprender mais detalhes sobre cada componente nestes tutoriais:
  • Tutorial de retransmissão
  • Tutorial do botão





Isenção de responsabilidade!


Este projeto trata do fornecimento de energia elétrica CA, faça por sua própria conta e risco !

Código

  • Arquivo sem título
Arquivo sem título C / C ++
 #include "U8glib.h" // SSD1306 compartilha de ondas oled (clk, din, cs, d / c, res); U8GLIB_SSD1306_128X64 u8g (A4, A5,12,11,10); volátil int rbc =0; volátil int bbc =0; int sec =0; int mi =0; int motor_rotation =0; configuração vazia () {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, SAÍDA); digitalWrite (5, BAIXO); pinMode (4, SAÍDA); digitalWrite (4, LOW);} void loop (void) {while (! rbc) {// mostrar o menu de configuração do cronômetro u8g.firstPage (); faça {draw_menu (); } while (u8g.nextPage ()); // mostra a mensagem de operação adequada do usuário if (rbc> 0 &&bbc ==0) {u8g.firstPage (); faça {draw_message (); } while (u8g.nextPage ()); atraso (2000); rbc =0; //u8g.clear (); }} // inicia o cronômetro if (rbc> 0) {sec =59; mi =bbc-1; while (mi> =0) {// mostra a mensagem do cronômetro de contagem regressiva unsigned long temp =millis () + 1000; while (temp>
 =millis ()) {u8g.firstPage (); faça {draw_timer (); } while (u8g.nextPage ()); } seg =seg-1; if (seg% 5 ==0) {control_motor (); // chamar a cada 5 segundos} if (sec <=0) {sec =59; mi =mi - 1; }} rbc =0; bbc =0; mi =0; seg =0; digitalWrite (5, LOW); digitalWrite (6, LOW); }} // fim do 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 LAVAGEM'"); u8g.setFont (u8g_font_5x8); u8g.drawStr (0,47, "Vermelho:INICIAR Preto:DEFINIR HORA"); } void draw_message (void) {u8g.setFont (u8g_font_8x13); u8g.drawStr (0,10, "DEFINIR TEMPORIZADOR DE LAVAGEM"); u8g.drawStr (0,23, "PRIMEIRO POR PUSHING"); u8g.drawStr (0,36, "O BOTÃO PRETO"); // u8g.setFont (u8g_font_8x13); u8g.drawStr (0,62, "'TEMPORIZADOR DE LAVAGEM'"); u8g.setFont (u8g_font_5x8); u8g.drawStr (0,47, "Vermelho:INICIAR Preto:DEFINIR HORA"); } 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 (seg); } else {u8g.setPrintPos (70,30); u8g.print (seg); } if (motor_rotation ==0) {u8g.setFont (u8g_font_5x8); u8g.drawStr (0,47, "WASHING MOTOR CW Spin"); digitalWrite (5, ALTO); } if (motor_rotation ==1) {u8g.setFont (u8g_font_5x8); u8g.drawStr (0,47, "MOTOR DE LAVAGEM PARADO"); 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, ALTO); } if (motor_rotation ==3) {u8g.setFont (u8g_font_5x8); u8g.drawStr (0,47, "MOTOR DE LAVAGEM PARADO"); digitalWrite (5, LOW); digitalWrite (4, LOW); } u8g.setFont (u8g_font_8x13); u8g.drawStr (0,62, "'TEMPORIZADOR DE LAVAGEM'"); } 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


Processo de manufatura

  1. Máquina EEG
  2. Máquina de venda automática
  3. Máquina de votação
  4. Alterar máquina
  5. Máquina EKG
  6. Máquina de Costura
  7. Máquina de ordenha
  8. Partes da máquina de torno
  9. Entendendo o torno mecânico
  10. Componente da fresadora