Waschmaschinen-Timer
Komponenten und Verbrauchsmaterialien
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 2 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Notwendige Werkzeuge und Maschinen
![]() |
| |||
![]() |
| |||
![]() |
| |||
![]() |
|
Apps und Onlinedienste
![]() |
|
Über dieses Projekt
Einführung
Dies ist ein Ersatzteil für meine Waschmaschine, die einen kaputten Waschtimer hat. Der ursprüngliche Timer war ein mechanischer Timer / Richtungsschalter, der den Motor des Waschbottichs auf folgende Weise steuern kann:
- X Minuten Waschzeiteingabe vom Benutzer nehmen
- Drehen Sie den Motor der Waschwanne für einige Sekunden im Uhrzeigersinn
- Motor für einige Sekunden anhalten
- Drehen Sie den Motor der Waschwanne für einige Sekunden gegen den Uhrzeigersinn
- Motor für einige Sekunden anhalten
- Fahren Sie mit den letzten 4 Schritten fort, bis der Waschtimer abgelaufen ist
Ich werde einen elektronischen Timer bauen, der denselben Vorgang ausführen kann.
Demo
Das folgende Video zeigt die Funktionsweise dieses elektronischen Timers:
Hardware
- Arduino Pro Mini: Führt Code aus und steuert alles
- 1306 OLED: Benutzeranweisungen und Timer-Countdown anzeigen
- Roter/Schwarzer Druckknopf: Timer einstellen und Timer starten
- 5-V-Relaismodule: Versorgen Sie den Motor und die Steuerrichtung mit Wechselstrom
- 5-V-Adapter: Schalten Sie den elektronischen Timer ein
1306 OLED wird so direkt auf den Pro Mini gelötet:

2 Relaismodul, 2 Taster, Arduino Pro Mini + 1306 OLED ist auf einem solchen Protoboard angeschlossen -


Programmierung
Schritt 1: Holen Sie sich ein HC-05 Bluetooth-Serial-Modul und ändern Sie seine Baudrate gemäß diesem Tutorial oder diesem Schritt auf 57600. Um diesen Schritt auszuführen, wird ein weiteres Arduino Uno oder ein USB-zu-Seriell-Modul benötigt.
Verwenden Sie die folgenden AT-Befehle
AT
AT+UART =57600,0,0
AT+RESET
Schritt 2: Nachdem die Baudrate auf 57600 geändert wurde, verbinden Sie den HC-05 mit Arduino pro mini gemäß folgendem Schaltplan

Schritt 3: Wählen Sie das Board aus der Arduino IDE aus, fügen Sie den Code ein und klicken Sie auf Upload.

Ich verwende Bluetooth seriell, weil es drahtlose im System programmierbare Funktionen ermöglicht, die bei Bedarf die Aktualisierung des Codes auf dem Pro mini erleichtert haben.
Verdrahtung und Gerätebetrieb erklärt
Die Verkabelung kann für neuere / andere Waschmaschinenmodelle variieren, daher werde ich meine erklären. Achten Sie auf das "Scharfe" Diagramm in der unteren rechten Ecke, ein WEISSER DRAHT kommt aus dem Netz und geht zum Waschtimer, ein ROTER DRAHT und ein BLAUER DRAHT kommen aus dem Waschtimer. Ich habe diese 3 Drähte vom ursprünglichen (defekten) Waschtimer getrennt und durch ein Loch oben an der Waschmaschine herausgeführt.


Wenn WHITE WIRE auf RED WIRE umgeschaltet wird, dreht sich der Motor im Uhrzeigersinn und wenn WHITE WIRE auf BLUE WIRE umgeschaltet wird, dreht sich der Motor gegen den Uhrzeigersinn.
Dieser elektronische Timer, der mit Arduino pro mini hergestellt wurde, verfolgt die Waschzeit, dreht den Motor der Waschwanne 5 Sekunden lang in eine Richtung, indem er die weißen und roten Drähte über einen Relaiskontakt verbindet. Dann stoppt es den Motor und wartet 5 Sekunden. Danach dreht es den Motor der Wanne für 5 Sekunden in die andere Richtung, indem die WEISSEN und BLAUEN Drähte durch den anderen Relaiskontakt verbunden werden. Dann stoppt es und wartet weitere 5 Sekunden. Alle diese Timing-Sequenzen können bei Bedarf aus dem Code geändert werden.
Das folgende Diagramm zeigt, wie durch einfaches Umdrehen des ankommenden Wechselstromnetzes auf einen Zweig oder den anderen Zweig des Motorkondensators die Richtung des Wechselstrommotors geändert werden kann.

Theorie des Einphasen-Induktionsmotors
Referenzen
In diesen Tutorials erfahren Sie mehr über die einzelnen Komponenten:
- Relais-Tutorial
- Schaltflächen-Tutorial
Haftungsausschluss!
Dieses Projekt befasst sich mit der Wechselstromversorgung, auf eigene Gefahr !
Code
- Unbenannte Datei
Unbenannte DateiC/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 sek =0; int mi =0; int motor_rotation =0;void setup () { u8g.setRot180 (); analogReferenz (INTERN); pinMode(2,INPUT_PULLUP); pinMode(3,INPUT_PULLUP); attachInterrupt(0, ISR_SW_RED,FALLING); attachInterrupt(1, ISR_SW_BLACK,FALLING); PinMode (5, AUSGANG); digitalWrite(5,LOW); PinMode (4, AUSGANG); digitalWrite (4, LOW);}void loop (void) { while (!rbc) { // Timer-Set-Menü anzeigen u8g.firstPage (); do { draw_menu (); } while(u8g.nextPage()); // Anzeige der korrekten Betriebsmeldung des Benutzers if (rbc>0 &&bbc==0) { u8g.firstPage(); do { draw_message(); } while(u8g.nextPage()); Verzögerung (2000); rbc=0; //u8g.clear(); }} // Timer starten if (rbc>0) {sec =59; mi =bbc-1; while(mi>=0) {// Countdown-Timer-Nachricht anzeigen unsigned long temp =millis () +1000; while(temp> =millis()) {u8g.firstPage(); do { draw_timer(); } while(u8g.nextPage()); } Sek =Sek-1; if(sec%5==0) { control_motor(); // alle 5 Sek. aufrufen} if (Sek <=0) {Sek =59; mi =mi - 1; }} rbc =0; BBC =0; mi =0; sek =0; digitalWrite(5,LOW);digitalWrite(6,LOW); } } // Ende der Schleifevoid draw_menu (void) { u8g.setFont (u8g_font_timB24); if (bbc<10) { u8g.drawStr(22,30,"0"); u8g.setPrintPos(38,30);u8g.print(bbc); aufrechtzuerhalten. Sonst { u8g.setPrintPos (22, 30); u8g.print (bbc); } u8g.drawStr( 54,30,":00"); u8g.setFont(u8g_font_8x13); u8g.drawStr( 0,62," 'WASCHTIMER'"); u8g.setFont(u8g_font_5x8); u8g.drawStr( 0,47,"Rot:START Schwarz:SET TIME"); }void draw_message (void) {u8g.setFont (u8g_font_8x13); u8g.drawStr( 0,10, "WASCHTIMER EINSTELLEN"); u8g.drawStr( 0,23,"ZUERST DURCH DRÜCKEN"); u8g.drawStr( 0,36,"DER SCHWARZE KNOPF"); // u8g.setFont (u8g_font_8x13); u8g.drawStr( 0,62," 'WASCHTIMER'"); u8g.setFont(u8g_font_5x8); u8g.drawStr( 0,47,"Rot:START Schwarz: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); aufrechtzuerhalten. Sonst { 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); aufrechtzuerhalten. 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,"WASCHMOTOR GESTOPPT"); digitalWrite(5,LOW);digitalWrite(4,LOW); } if (motor_rotation ==2) { u8g.setFont (u8g_font_5x8); u8g.drawStr( 0,47, "WASCHMOTOR CCW Spin"); digitalWrite (4, HOCH); } if (motor_rotation==3) { u8g.setFont (u8g_font_5x8); u8g.drawStr( 0,47,"WASCHMOTOR GESTOPPT"); digitalWrite(5,LOW);digitalWrite(4,LOW); } u8g.setFont (u8g_font_8x13); u8g.drawStr( 0,62," 'WASCHTIMER'"); } ISR_SW_RED () ungültig machen { sei (); rbc++; cli();}void ISR_SW_BLACK(){ sei(); bbc++; cli();}void control_motor(){ motor_rotation++; if (motor_rotation>3) { motor_rotation =0; }}
Schaltpläne


Herstellungsprozess