Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Wasmachinetimer

Componenten en benodigdheden

SparkFun Arduino Pro Mini 328 - 5V/16MHz
× 1
1306 OLED-scherm
× 1
DFRobot Gravity:digitale drukknop (geel)
× 2
Seeed Grove - 2-kanaals SPDT-relais
× 1
Digilent 5V 2.5A schakelende voeding
× 1
SparkFun USB UART seriële breakout - CY7C65213
× 1
HC-05 Bluetooth-module
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)
Hot lijmpistool (algemeen)
Tape, dubbelzijdig
Tape, groen

Apps en online services

Arduino IDE

Over dit project

Inleiding

Dit is een vervangend onderdeel voor de wasmachine die ik heb met een kapotte wastimer. De originele timer was een mechanische timer/richtingschakelaar, die de motor van de wastobbe op de volgende manier kan regelen:

  • Neem x minuten input van de wastijd van de gebruiker
  • Draai de motor van de wastobbe enkele seconden met de klok mee
  • Stop de motor enkele seconden
  • Draai de motor van de wastobbe enkele seconden tegen de klok in
  • Stop de motor enkele seconden
  • Blijf de laatste 4 stappen doen totdat de wastimer afloopt

Ik ga een elektronische timer bouwen die dezelfde bewerking kan uitvoeren.

Demo

De volgende video demonstreert de werking van deze elektronische timer:

Hardware

  • Arduino Pro Mini: Voert code uit en controleert alles
  • 1306 OLED: Toon gebruikersinstructie en timer aftellen
  • Rood/Zwarte Drukknop: Timer instellen en timer starten
  • 5V relaismodules: Lever wisselstroom aan motor en stuurrichting
  • 5V-adapter: Zet de elektronische timer aan

1306 OLED wordt als volgt direct op de pro mini gesoldeerd:

2 relaismodule, 2 drukknoppen, Arduino Pro Mini + 1306 OLED is aangesloten op een protoboard zoals dit -

Programmeren

Stap 1: Koop een HC-05 Bluetooth-seriële module en verander de baudrate naar 57600 volgens deze tutorial of deze stap. Om deze stap uit te voeren is een andere Arduino Uno of een USB-naar-serieel-module vereist.

Gebruik de volgende AT-commando's

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

Stap 2: Nadat de baudrate is gewijzigd in 57600, sluit u de HC-05 aan op Arduino pro mini volgens het volgende bedradingsschema

Stap 3: Selecteer bord van Arduino IDE, plak de code en klik op uploaden.

Ik gebruik Bluetooth-serieel, omdat het draadloze programmeerbare mogelijkheden in het systeemveld mogelijk maakt, wat hielp bij het bijwerken van de code op pro mini indien nodig.

Bedrading en apparaatbediening uitgelegd

Bedrading kan variëren voor nieuwere/verschillende wasmachinemodellen, dus ik ga het uitleggen over mijn exemplaar. Let op het "Scherpe" diagram in de rechterbenedenhoek, één WITTE DRAAD komt uit het lichtnet en gaat naar de wastimer, één RODE DRAAD en één BLAUWE DRAAD komt uit de wastimer. Ik heb deze 3 draden losgekoppeld van de originele (defecte) wastimer en naar buiten gebracht door een gat aan de bovenkant van de wasmachine.

Wanneer WHITE WIRE wordt omgeschakeld naar de RED WIRE-motor, draait deze met de klok mee en wanneer WHITE WIRE wordt overgeschakeld naar de BLUE WIRE-motor, draait deze tegen de klok in.

Deze elektronische timer gemaakt met Arduino pro mini houdt de wastijd bij, draait de motor van de wastobbe gedurende 5 seconden in één richting door WITTE en RODE draden via één relaiscontact te verbinden. Daarna zal de motor stoppen en 5 seconden wachten. Daarna zal het de motor van de waskuip 5 seconden in de andere richting draaien door de WITTE en BLAUWE draden door het andere relaiscontact te verbinden. Daarna stopt het en wacht nog 5 seconden. Al deze timingsequenties kunnen indien nodig vanuit de code worden gewijzigd.

Het volgende diagram laat zien hoe de richting van de AC-motor kan worden veranderd door simpelweg het binnenkomende AC-net naar het ene been of het andere been van de condensator van de motor te draaien.

Eenfasige inductiemotortheorie

Referenties

U kunt meer in detail over elk onderdeel leren in deze tutorials:

  • Relay-tutorial
  • Knop-zelfstudie

Disclaimer!

Dit project betreft netvoeding, doe dit op eigen risico !

Code

  • Naamloos bestand
Naamloos bestandC/C++
#include "U8glib.h"//SSD1306 oled waveshare(clk,din,cs,d/c,res);U8GLIB_SSD1306_128X64 u8g(A4,A5,12,11,10);vluchtig int rbc =0;vluchtig int bbc =0; int sec =0; int mi =0; int motor_rotation =0; ongeldige setup(){ u8g.setRot180(); analogeReferentie (INTERN); pinMode (2,INPUT_PULLUP); pinMode(3,INPUT_PULLUP); attachInterrupt (0, ISR_SW_RED, FALLING); attachInterrupt(1, ISR_SW_BLACK,FALLING); pinMode (5, UITGANG); digitalWrite (5, LAAG); pinMode (4, UITGANG); digitalWrite(4,LOW);}void loop(void) { while(!rbc) { // show timer set menu u8g.firstPage(); doe { draw_menu(); } while( u8g.nextPage() ); // toon de juiste werking van de gebruiker als (rbc>0 &&bbc==0) { u8g.firstPage(); doe { draw_message(); } while( u8g.nextPage() ); vertraging (2000); rbc=0; //u8g.clear(); } } // start timer if(rbc>0) { sec =59; mi =BBC-1; while(mi>=0) {// show countdown timer message unsigned long temp =millis()+1000; while(temp>
=millis()) { u8g.firstPage(); doe { draw_timer(); } while( u8g.nextPage() ); } sec=sec-1; if(sec%5==0) { control_motor(); // bel elke 5 sec } if (sec <=0) { sec =59; mi =mi - 1; } } rbc =0; BBC =0; mi =0; seconden =0; digitalWrite(5,LAAG);digitalWrite(6,LAAG); } }// einde van 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," 'WASTIMER'"); u8g.setFont(u8g_font_5x8); u8g.drawStr( 0,47,"Rood:START Zwart:SET TIJD"); }void draw_message(void){ u8g.setFont(u8g_font_8x13); u8g.drawStr( 0,10," WASTIMER INSTELLEN"); u8g.drawStr( 0,23,"EERST DOOR TE DRUKKEN"); u8g.drawStr( 0,36,"DE ZWARTE KNOP"); // u8g.setFont(u8g_font_8x13); u8g.drawStr( 0,62," 'WASTIMER'"); u8g.setFont(u8g_font_5x8); u8g.drawStr( 0,47,"Rood:START Zwart:SET TIJD"); }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," WASMOTOR CW Spin"); digitalWrite (5, HOOG); } if(motor_rotation==1) { u8g.setFont(u8g_font_5x8); u8g.drawStr( 0,47," WASMOTOR GESTOPT "); digitalWrite(5,LAAG);digitalWrite(4,LAAG); } if(motor_rotation==2) { u8g.setFont(u8g_font_5x8); u8g.drawStr( 0,47," WASMOTOR CCW Spin"); digitalWrite(4,HOOG); } if(motor_rotation==3) { u8g.setFont(u8g_font_5x8); u8g.drawStr( 0,47," WASMOTOR GESTOPT "); digitalWrite(5,LAAG);digitalWrite(4,LAAG); } u8g.setFont(u8g_font_8x13); u8g.drawStr( 0,62," 'WASTIMER'"); }nietig 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; }}

Schema's


Productieproces

  1. EEG Machine
  2. Automaat
  3. Stemmachine
  4. Apparaat wijzigen
  5. EKG-apparaat
  6. Naaimachine
  7. Melkmachine
  8. Panty
  9. Onderdelen van draaibankmachine:
  10. Draaibankmachine begrijpen
  11. Onderdeel van freesmachine: