Alles begann ganz harmlos und ist hier (klick mich) beschrieben.
Nachdem also meine Waschmaschine bei einem Reparaturversuch aus bisher unbekannter Ursache den Deckel von 3 Transistoren abgesprengt hat, ist die Steuerung mausetot. Der Rest könnte aber noch zu brauchen sein.
Nun konnte ich nicht einfach
die Waschmaschine in den Bastelkeller schieben und ein paar Wochen dran rumfrickeln
bis die Mühle wieder rennt. Genauer gesagt, wurde von mir der Ersatz recht zügig
verlangt. Deshalb habe ich erstmal rausgefunden, wo man zeitnah so einen Vollautomaten günstig
her bekommt - am Besten auch noch auf Rechnung. Also wurde kurz dem Internet mein neustes
Verlangen kund getan: Versandhäuser Elektronik auf Rechnung
Geht doch: Waschmaschinen gibt's offensichtlich wie Sand
am Meer. Ich musste mich nur für eine entscheiden, die sofort lieferbar war und
das Ding dann mit Nachbars Hilfe in den Keller buckeln. Sobald der neue Apparillo brav
für saubere Kleidung sorgte, konnte ich in Ruhe an der alten Maschine rumbasteln und
mir dazu so viel Zeit lassen wie ich wollte. Damals habe ich nicht im Entferntesten
geahnt, wie lange das sein würde.
Ich wusste wohl, dass das ein größeres Projekt werden wird,
aber das hat mich natürlich nicht geschreckt und ist im Folgenden beschrieben.
Das
langfristige Ziel war: der alten Maschine ein neues Hirn einpflanzen und sie wieder zum Leben
erwecken.
Wieso kommt mir die Geschichte so bekannt vor?
Eine Maschinenleiche habe ich bereits - fehlt ein frisches Gehirn. Dazu muss ich also eine eigene Steuerung entwerfen. Teile der alten Platine sind bestimmt noch brauchbar, nur der Mikroprozessor und ein paar Kleinteile dürften hinüber sein.
Nachdem ich rund eine Woche in der Maschine rumgemessen habe und unzählige Stunden Leiterbahnen mit der Lupe verfolgt habe, kenne ich den Aufbau der Maschine halbwegs und weiß in etwa, was alles noch funktioniert.
Es ist erstaunlich viel heil geblieben.
Den Motor habe ich an einen Stelltrafo angeschlossen und die Pulsgeber-Elektronik, mit der sich die Drehgeschwindigkeit messen lässt, auf einem Steckbrett nachgebaut.
Der Motor schnurrt wie ein Kätzchen - und der Pulsgeber scheint zu funktionieren. Schwein gehabt!
Selbst bei langsamer Drehung kommen schon ziemlich viele Pulse pro Umdrehung.
Geht man mit der Drehzahl weiter runter, sehen die Pulse bei weniger als 50Hz nicht mehr sauber aus:
Von Hand abgezählt: Wenn die Trommel 3 Umdrehungen macht, dreht sich der Motor 31 mal. Also eine Untersetzung 10,33 : 1. Das heißt, dass der Motor beim Schleudern für 1450 1/min auf 15000 Touren kommen muss. Wow, da kommen die Pulse also mit ein paar KHz angeflogen!
Da der Prozessor hin ist, fliegt er raus. Da ist Mr. Dremel gefragt:
Wo der Schleifer nicht drankommt, muss der Fräser ran:
Bleibt ein Haufen Drahtreste, die einzeln entlötet werden können.
Nach und nach habe ich die Platine analysiert und von einzelnen Funktionen Schaltpläne
erstellt. Vieles ist allerdings noch unklar...
Nur Mut: Einfach mal den Stelltrafo an den 230V-Eingang angeschlossen und die +5V nachgemessen. Astrein:schon bei 80V Eingangsspannung stehen stabile 5V an. Das Schaltnetzteil funktioniert also. Aber die 12V kommen bei den Relais nicht mehr an. Auch die Leitungsführung war sehr merkwürdig. Der Durchgangspiepser piepste viel zu selten - Leiterbahnen verschwanden unter Bauteilen und schienen im Nichts zu Enden.
Da das nicht der Originalzustand sein konnte, musste es wohl kürzlich entstandene Unterbrechungen geben.
Gab's auch. So sieht eine durchgeknallte Durchkontaktierung aus:
Das ist ein Fall für Skalpell No. 11!
Damit kann man prima die Niete von innen sauber schaben und den Lack von der Leiterbahn kratzen, um dann einen Draht durchzulöten. Jetzt gehen die 12V auch bis zu den Relais.
Diese Schaltung habe ich aus der Platine rausgelesen:
Allerdings
verstehe ich nicht, wie der Transistor QD1 jemals durchschalten soll, wenn er nur
über R34 mit 1,8 Megaohm Strom kriegen kann. Aber andere Leiterbahnen habe ich
nicht gefunden. Die beiden Platinenseiten habe ich abgelichtet und so bearbeitet, dass sie
übereinander passen. Damit ihr selber mal nachsehen könnt, kann man sie hier herunterladen:
Watchdog + Reset Bestückungsseite
und Lötseite
Oh, einen Fehler hab ich schon: R5 gehört auf die andere
Seite von R33.
Ein helles Köpfchen in Finger's Forum
hat den Denkfehler um
0:16 Uhr gefunden: Der Inverter 74HC14 (1) gehört
andersrum. Jau - dann macht die Schaltung plötzlich
richtig viel Sinn!
Mit den Druckdosen wird der Wasserstand bestimmt, indem einfach Schläuche von der Dose unten in den Waschbottich führen. Das aufsteigende Wasser erhöht den Druck im Schlauch und in der Dose drückt eine Membran irgendwann auf einen Schalter.
Die braune Druckdose war schnell analysiert. Vorsichtiges in den Schlauch pusten und alle Kabel verfolgen gab dieses Bild:
Die Funktion ließ sich auch schnell erahnen: Wenn Wasserstand 1 erreicht ist, geht die Tür nicht mehr auf. Erst wenn Wasserstand 2 erreicht ist, kann die Heizung Saft kriegen (damit der Thermofühler und der Heizstab unter Wasser sind).
Die schwarze Dose hat schwarz-auf-schwarz die Beschriftung 5V 0V OUT:
Auf der Platine geht das OUT Signal über ein R-C-Glied und eine Schutzdiode an einen Timer/Counter-Eingang des Prozessors. Die Dose liefert Pulse, die von der Wasserstandshöhe abhängen. Also kann ich den Wasserstand stufenlos messen. Klingt eigentlich prima - nur muss ich das Ding erstmal kalibrieren und mir dann sinnvolle Wasserstandshöhen einfallen lassen.
Das Scope zeigt, dass es sich um eine Frequenzänderung handelt. Hier einmal bei Umgebungsdruck und einmal bis Anschlag reingeblasen :
Die Frequenz nimmt also mit steigendem Wasserstand ab.
Gut ist, dass man damit eine Schaumerkennung programmieren kann: Wenn beim Waschen der gemessene Wasserstand sinkt, ist der Waschbottich undicht, oder es hat sich eine Menge Schaum gebildet.
Wäre ja nett, wenn man damit ein Überschäumen verhindern kann.
Der kriegt 5V und liegt über 'nen 2K2 Widerstand an Masse (zum Filtern ein paralleler Kondensator) . Die Spannung über dem Widerstand geht an einen Analogeingang des Prozessors. Im kalten Keller messe ich 8K über dem Fühler. Ich vermute einen Heißleiter, der bei 95 Grad auf unter 2K geht.
Die Maschine hat 3 Magnetventile.
Da ich davon ausgehe, dass sie für das Einspülen des Waschmittels für Vorwäsche, Hauptwäsche und Weichspüler notwendig sind, werde ich die Zuordnung später mal herausbekommen. Die Ansteuerung erfolgt über Triacs - also sind es 230V Spulen und sie können eigentlich nicht kaputt sein.
Das ist ein trauriges Kapitel: Zur Frontblende geht ein 3-poliges und ein 5-poliges Kabel. Ich gehe davon aus, dass damit eine serielle Schnittstelle gebaut wurde. Da ich das Übertragungsprotokoll nicht mehr belauschen kann, ist eine Analyse recht schwierig.
Also finde ich mich damit ab: Die Bedienung war sowieso nicht mein Geschmack, die mach ich komplett neu!
Irgendwas zwischen diesen beiden Extremen
wird es wohl werden:
Diese Liste ist keinesfalls vollständig. Es ist lediglich so ein Merkzettel, an dem ich mich Langhangeln kann.
Demnächst versuche ich folgendes:
---------------------------------------------------------------------- * Rausfinden, ob die schwarze Druckdose Pulsweiten oder Frequenzänderungen macht. ERLEDIGT:Frequenzänderung, 44.48Hz leer, Frequenz sinkt um bis zu 10Hz bei steigendem Wasser) * Wie kommt der Mikroprozessor an die Nulldurchgänge der Netzspannung, damit der die Phasenanschnittsteuerung für die Triacs machen kann? ERLEDIGT: geht über Spannungsteiler und Schmitt-Trigger auf Interrupt-Eingang (INT0) * Wie funktioniert die Türverriegelung und der Türschalter Drei Kabel gehen hin. Erste Vermutung: 2 an Verriegelung (Phase und Null), eins als "Tür geschlossen" Rückmeldung. Das ist wohl falsch! Blaues Kabel: Saft, wenn Wasserpegel auf Niveau2. Schwarz-Lila Kabel: an J7 (Triac Ausgang). Graues Kabel an Drehschalter. Was macht es da? --Nich dazu gekommen, das nachzumessen. Dafür hat meine Tochter jetzt ein neu tapeziertes Zimmer und läuft auf Laminat statt Teppich. Am längsten haben mal wieder die Fußleisten gedauert... ----------------------------------------------------------------------
Später muss ich dann noch klären:
---------------------------------------------------------------------- * Welchen Widerstandsverlauf hat der Thermofühler? * Welche Frequenz gehört zu welchem Wasserstand? * Welche Wasserstandshöhen nimmt die neue Maschine in den einzelnen Programmen? * Welches Magnetventil für welche Waschmittelkammer? * Welche Zeiten werden für die einzelnen Abläufe benutzt? * Unwuchterkennung durch Analyse des Geschwindigkeitsverlauf während einer Trommelumdrehung * Algorithmus zur Gewichts-Gleichverteilung bei Unwucht * Bedienpult gestalten ----------------------------------------------------------------------
Wenn die neue Maschine nicht 5 Jahre Garantie hätte, könnte ich sie ja glatt mal aufschrauben, nach ähnlichen Komponenten suchen und eine Menge über den Waschablauf rausmessen. Aber wenn ich das Teil dabei auch nur irgendwie beschädige oder gar außer Funktion setze, hängt der Haussegen schief!
Also bleibt sie zu - und ich analysiere alles durch das Bullauge.
Ein großzügiger Bastler hat mir eine baugleiche Platine zukommen lassen. Die ist jedoch auf eine andere Maschine programmiert. Da ich bisher nicht rausgefunden habe, wie ich den Code zum Ändern des Maschinentyps eingeben kann, bleibt das Teil ein Ersatzteillager. Immerhin konnte ich damit feststellen, dass die Anzeige-Einheit noch funktioniert.
Da mir noch nicht klar ist, wie die Maschine zu steuern ist, wird die Steuerung in zwei Teile aufgeteilt. Ein Mikrokontroller AT-Mega8 sitzt auf der Platine und ersetzt den bisherigen Prozessor. Leider hat der etwas wenig Anschlüsse. Das ist einerseits gut, weil er so mechanisch prima paßt. Andererseits kann er so nicht alles steuern.
Ich musste mich also auf das Wesentliche beschränken und z.B. die Bedienelemente einfach ignorieren. Weil immer noch 1 Leitung fehlte, wurde der Hardware-Watchdog einfach auf das TX-Signal der seriellen Schnittstelle geklemmt.
Die Aufgabe des kleinen Kerlchens ist nun, alle Messwerte zu erfassen und alle Ausgänge zu schalten. Allerdings trifft er keine Entscheidungen und kennt auch keine Abläufe. Er ist über eine serielle Schnittstelle mit dem eigentlichen Steuerrechner verbunden. Alle 100ms sendet er diesem die aktuelle Motordrehzahl und alle 500ms zusätzlich alle gemessenen Analogwerte. Außerdem lauscht er auf Kommandos, die zum Umschalten der Ausgänge dienen. Als Steuerrechner wird erstmal mein PC genommen. Wenn die Waschabläufe dann irgendwann mal funktionieren sollten, kann ich die immer noch in einem Mikrokontroller implantieren.
Hier die ersten Fotos vom Einbau des Kleinhirns :
Und weil's so schön ist, ein paar Details:
Wie man sieht (wenn man es darauf anlegt), ist die serielle Schnittstelle und der Quartz noch nicht angeschlossen. Aber vielleicht ist der eingebaute RC-Oszillator ja genau genug.
In Delphi5 hab ich dann mal schnell eine simple Bedienoberfläche zusammengestrickt:
Bisher läuft der Prozessor aber nur auf einer Testplatine, die in der Bedienoberfläche angezeigten Werte sind einfach das Rauschen der offenen Eingänge.
Warum sind da 2 Balken für die Analogwerte? Die Analogwerte werden sowohl im Nulldurchgang der Netzspannung gemessen (oberer Balken), als
auch 5ms später im Scheitelpunkt(unterer Balken). Damit kann ich erkennen, ob eine Spannung rausgeht und ob eine Induktivität eine Spannung liefert,
nachdem ich abgeschaltet habe.
Die Software zum runterladen: Bedienoberfläche mit Sourcen (268K) 83bedienoberflaeche.zip und die Software, die auf dem Mega8 läuft (26K). 83waschmaschine_mega8.zip
Irgendwann kommt der Mega8 in die neue Fassung auf der Platine. Aber auf keinen Fall darf man die serielle Schnittstelle
direkt an den PC anschließen, denn das Netzteil der Waschmaschine ist nicht galvanisch getrennt - die Masse
des Prozessors könnte also auf 230V-Phase liegen!
Mit zwei Optokopplern, 'nem MAX232 und einem kleinen Netzteil wird das aber lösbar sein.
Auf Wunsch einer einzelnen Dame ist die defekte Waschmaschine von der Waschküche in meine Werkstatt umgezogen. Prima, jetzt steht mir der Kasten andauernd im Weg!
Und da Waschmaschinen leider nicht aus Styropor sind (sondern Betongewichte enthalten), lassen sie sich bei Bedarf auch nicht so einfach bei Seite heben.
Damit ich sie leichter umherschubsen kann, habe ich ihr einfach ein Fahrgestell verpaßt.
Bemerkenswert fand ich, dass im Baumarkt ein teppichbezogenes Brett mit 4 Lenkrollen und Umleimer nur die Hälfte kostet wie 4 Rollen allein.
Ich hab' nur noch keine Verwendung für das Teppichbrett...
Nachtrag 12/2012: Nach nur 5 Jahren habe ich endlich eine sinnvolle Verwendung für das tolle Brett gefunden. Klick mich
Wir schreiben den 4.9.2009: Das gute Stück hat nun eineinhalb Jahre Staub schlucken müssen, bis ich mich überwinden konnte, das Gerät nochmal rauszukramen.
Da muss ich wohl erstmal putzen, bis ich wieder Strom draufgeben darf.
Da das Programmieren des Chips so eine Qual ist und ich vermute, dass ich noch sehr viel probieren muss, habe ich alle Drähte abgelötet und nun eine steckbare Verbindung zu einer externen Controllerplatine geschaffen.
Als erstes kümmere ich mich mal um den Motor. Irgendwie muss man den doch geregelt zum laufen bringen!
Dazu habe ich einen simplen PID-Regler programmiert und zum bequemen einstellen des Reglers und der Sollgeschwindigkeit V einfach 4 Potis vorgesehen.
Rechnen tut das nun ein ATmega88 und eine verdrehsichere Programmierschnittstelle ist auch drauf:
Viele Prüfdrähte dienen zum Anschluss eines Scopes. Anders läßt sich hier schlecht debuggen.
Gelaufen ist das gar nicht. Kein Mucks. Irgendwann hab ich's gefunden: Die Tür muss erst verriegelt werden, sonst kriegt der Motor keinen Saft.
Das mit der Regelung hat dann auch gar nicht funktioniert.
Die Triacsteuerung hatte ich so gebaut: ein 4KHz-Timerinterrupt zählt den Zündwinkel bis 40 hoch.
Stimmt er mit dem gewünschten Zeitpunkt überein, wird der Triac gezündet.
Im Nulldurchgang wurde der Zähler zurückgesetzt.
Eine sichere Sache - oder?
Denkste! Die Maschine hat sich benommen wie ein junger Hengst und ich hatte ein wenig Angst um die Mechanik.
Was war los?
Aus Bequemlichkeit hatte ich alle Werte als Fließkommazahlen gerechnet. Die Aufrufe der 4KHz Task habe ich auf dem Scope sichtbar gemacht und folgendes gesehen:
Statt sauber alle 250 Mikrosekunden zu zählen, waren da dicke Lücken drin. Mist, die PID-Regler-Berechnungen erfolgten im Nulldurchgangsinterrupt und dauern halt recht lange. Da kommt der 4KHz IRQ nicht zwischen. Daher zündete der Triac dann irgendwann, was zum bocken der Maschine führte.
Also alles umgebaut und die IRQ-Routinen total ausgedünnt. Und alles auf Integer-Arithmetik umgestellt.
Ergebnis: besser, aber nicht gut.
Stundenlang rumgesucht und irgendwann festgestellt, das der Tacho manchmal Geisterimpulse liefert .
Dadurch habe ich falsche Istwerte, welche der P-Regler sofort an den Triac weitergibt.
Nach vielen vergeblichen Filterversuchen die Ursache gefunden: Überschwinger in der fallenden Flanke
lösen den Interrupt aus. Lösung war einfach: 10nF gegen Masse an den Porteingang auf der Prozessorplatine und
die Pulse kommen sauber! Teile von den Filtern und Plausibilitätstests ist dringeblieben - kann ja nicht schaden.
Gut, die 10nF hätten es auch in SMD getan, ich hatte aber nur einen mit 1000V Spannungsfestigkeit rumliegen.
Egal, Hauptsache, es geht!
PID-Regler durch probieren eingestellt. Lausiges Ergebnis.
Irgendwie schwingt das Teil oder die Mühle läuft total lahm an.
Maßnahme: Umstellung von 4MHz auf 16,384MHz und Begrenzung des I-Reglers. Keine Verbesserung.
Vielleicht hilft Einstellung nach Lehrbuch?
Also Software für Sprungantwort programmiert. Mit HTerm die Istwerte aufgezeichnet und als Diagramm angezeigt.
Problem: bei langsamer Fahrt kommen noch keine Tachosignale. Daher ist weder die Tangentensteigung im Nullpunkt noch eine Wendetangente bestimmbar. Also ein paar Tangenten geraten. Ergebnis: Entweder Trommel ruckt beim Anfahren stark oder die Drehzahl wird nur sehr ungenau gehalten.
Vielleicht ist das alles zu ungenau.
Auflösung der Triaczündung vervierfacht und die gesamte Triacsteuerung über Hardwaretimer realisiert.
Ruckbegrenzung beim Anfahren und Anfahren in 2 Stufen eingebaut
Regelung arbeitet nun befriedigend.
Ich pfeif auf die Theorie und stelle P und I nochmal penibel nach Gefühl ein. Wie ich feststelle, muss der D-Anteil auf Null, sonst habe ich rappelnden Lauf.
Jetzt astreiner Anlauf der leeren Maschine!
Erster Test mit trockener Wäsche. Läuft immer noch prima.
Erster Test mit pitschnasser Wäche (große Stücke). Motor läuft nicht an. Reglerausgabe war zu sehr begrenzt.
P Anteil etwas erhöht, Begrenzung des I-Reglers erweitert.
Die Maschine läuft nun voll Wäsche sauber an.
Mit leerer Trommel nur ein leichter Überschwinger.
Thema durch - das bleibt jetzt so!
Als nächstes kommt die Anlegephase als Schleudervorbereitung.
Dabei muss die Wäsche gleichmäßig an der Trommelwand verteilt werden, so dass die Unwucht minimal ist.
Die Drehzahl muss dabei so hoch gewählt werden, das die Wäsche komplett anliegt.
Dazu wieder ein Probeaufbau:
Die Unwuchtmessung erfolgt durch Aufzeichnung der Pulsabstände für 3 Trommelumdrehungen. Ausgabe via RS232.
Alle 6 Sekunden wird der gerade eingestellte Stellwert des Reglers eingefroren und die nächsten 252 Tachopulse werden aufgezeichnet (gibt 3 Trommelumdrehungen). Unwucht läßt sich im Diagramm gut erkennen, aber Drehzahl läuft stark weg.
Regler bei Messung angelassen. Geht trotzdem prima - der kann die Unwucht nämlich nicht voll ausregeln.
Unten ist der Winkel der Trommel aufgezeichnet (3 Umdrehungen), oben sieht man die Periodendauer der Tachopulse und man erkennt, wie die Drehzahl schön sinusfürmig schwankt. Insgesamt sind 4 Messungen zu sehen, die zeitlich aber auseinander lagen und durch die grünen Linien getrennt sind.
Zum vergleich eine leere Trommel:
Von Hand (am V-Poti drehend) versucht, nasse Wäsche auszuwuchten und dann hochzutouren.
Gar nicht so einfach. Das wird ein kniffliger Algorithmus, wenn der Controller das ohne hinzusehen allein machen muss.
Bei gleicher Unwucht wird die Schwankung im Messwert bei steigender Drehzahl geringer, obwohl die Unwucht sich stärker auf die Mechanik auswirkt.
Hm, das könnte langwierig werden!
Vielleicht setze ich mich mal vor die heile Maschine und schau ihr beim Schleudern zu...
Oder ich messe erstmal selbst. Also habe ich eine Statistikauswertung für eine Trommelumdrehung programmiert:
Min, Max,Mittelwert, Mittlere Abweichung vom Mittelwert und Standardabweichung werden berechnet und
wieder via RS232 ausgegeben.
Hm, anhand der Werte erkennt man zwar die Unwucht, kriegt sie aber nicht so einfach weg.
Wie war das mit der Physik? Bei welcher Drehzahl klebt die Wäsche so grade an der Trommelwand?
a = (2*PI*f)² * r
a= Beschleunigung, die auf die Wäsche an der Trommelwand wirkt. Muss im Grenzfall gleich der Erdbeschleunigung sein
f= Umdrehungsfrequenz
r = Halber Trommeldurchmesser
f = wurzel(a/r)/(2*PI)
mit a= 9.81 m/s² r=0,455/2 = 0,2275m ergibt das f=1,05 1/s oder 62,7 1/min
Wenn ich die Trommel also mit 62 Touren laufen lasse, dürfte die Wäsche grade noch nicht an der Wand kleben.
Hm, mal andersrum: wenn ich später mit 1500 Touren schleuder dann wirkt ( tipp-tipp-tipp ) das 572-fache der Erdbeschleunigung auf die Wäsche. Wenn die 4Kg Wäsche also so verteilt sind, dass auf einer Seite 100g mehr liegen, wirkt auf die Trommel eine Unwucht mit der Kraft von rund 60Kg!
Wäre also besser, die Wäsche genauer zu verteilen.
Die kleinste Einheit ist bei mir die Socke. Die Waage zeigt: 25g.
Und so eine einzelne Socke erzeugt dann eine Unwucht von immerhin 14,3 Kg. Und sockengenaues Auswuchten wird bestimmt schwierig,
an Bettwäsche oder einen Bademantel mag ich gar nicht denken!
Ups - da habe ich mir ja was vorgenommen! Und den Stoßdämpfern steht eine harte Zeit bevor...
Die Wäsche muss gleichmäßig an die Trommelwand angelegt werden.
Wie oben berechnet brauche ich dafür mindestens 60 1/min. Also habe ich von
Hand in der Nähe von 60 1/min rumgespielt und die Werte beobachtet.
Dann wurde folgender Anlegephase-Algorithmus gebaut und die Werte durch probieren ermittelt:
(1) auf 60 1/min gehen und bis zu 20s warten, bis Unwucht (Streuung)<=200 ist.
(2) Alle 3s die Drehzahl etwas erhöhen
(3) Sobald Unwucht <=200: hochtouren auf 100 1/min und weiter bei 5)
(4) Nach 30s vergeblichen rumeierns: Runtertouren auf 30 1/min, 15s nudeln lassen und von vorn beginnen
(5)auf 100 1/min: wenn nach einigen Sekunden die Streuung unter 60 ist, hochtouren auf 300 und dort 'ne Minute schleudern.
(6) Wenn nach 8s Unwucht immer noch zu groß, von vorn beginnen
Klappt manchmal.
Mal geht's richtig gut, mal springt die Maschine fast vom Sockel.
Hier zwei WM9-codierte Videos von Versuchen mit feuchter Wäsche bei bis zu 300 1/min. Im zweiten Versuch habe ich die Beleuchtung geändert, damit man die Trommelrückwand glänzen sieht.
Problematisch ist, wenn schwere Wäschestücke diagonal gegenüber liegen. Dann ist die via Drehzahl messbare Unwucht sehr gering, die Trommel eiert aber wie bekloppt! Wie soll ich da jemals auf 1500 Touren kommen?
Ich habe bisher keine Ahnung, wie ich das in den Griff kriegen kann.
Könnte also sein, dass erst mal wieder Staub fallen muss...
Zum Testen brauche ich Frischwasser und Abwasser. Dazu musste die Installation in meiner Werkstatt um eine Wasserabzweigung erweitert werden.
Nun hat die Maschine einen Stammplatz vor meiner Spüle.
Nach dem Vorbild der Natur habe ich eine zweiten Prozessor spendiert. Dieser erfasst den Wasserstand und die Temperatur. Außerdem mißt er diverse Netzspannungen. Damit kann ich später vielleicht defekte Triacs erkennen.
Die Platine hat nun am linken Rand einen kleiner Taster für die Pumpe.
Zum Testen der Wasserstände: Das Großhirn wurde rausgezogen und statt desssen stimuliert der dicke grüne Schalter
direkt die offenen Nervenenden an der DIL-28 Fassung, um das Magnetventil für die Vorspülkammer anzuregen.
Da es in der Ecke vor der Spüle recht dunkel ist, habe ich mal provisorisch eine Lampe angebracht:
Die Messwerte sendet das Kleinhirn über die serielle Schnittstelle an das Großhirn. Gut ist, dass ich die Datenübertragung mit dem PC belauschen kann. Schade ist, dass das Kleinhirn nur Binärdaten raushaut. Das macht die Auswertung ein wenig komplizierter, da ich die Hex-Werte von Hand decodieren muss:
Tagelang habe ich gegrübelt, wie ich die Temperatur kalibrieren soll.
Ein Thermometer in die Trommel legen? Hm, mein Badethermometer geht nur bis 45°C.
Auch ist das durch die geschlossenen Tür schlecht ablesbar.
Fädeldraht durch die Türdichtung mogeln und einen NTC dran?
Oh - und das Wasser müsste beim Erhitzen besser umgerührt werden!
Oder soll ich einfach nur am Trommelgehäuse messen?
Äh - und der Trenntrafo ist zu schwach für die Heizung. Dann muss ich aufpassen, wo ich anfasse!
Hm - Vielleicht kann man den Fühler ja rausschrauben. Hoffentlich kriege ich das Teil anschließend wieder dicht!
Was solls: Die Temperaturkalibrierung war dann viel einfacher als gedacht, da sich der Temperaturfühler durch kräftiges ziehen komplett ausbauen ließ:
Plöpp!
Nix geschraubtes - einfach ein Gummistopfen!
Der bekam dann ein heißes Bad in einer Kaffetasse - mit Magnetrührer und Glasthermometer. Soll ja ordentlich werden!
Der Magnetrührer hängt an einer Kombination aus 12V-Akku und passendem Ladegerät, weil das grade greifbar war.
Sportliches Waschmaschinenthermometerkalibrieren:
In der Hocke sitzen und das Thermometer anstarren, bis es um 1 Grad gefallen ist, dann aufspringen und die Hexzahl ablesen.
Anfangs fiel die Temperatur ja recht schnell. Später habe ich unzählige mal das Thermometer checken müssen.
Und so bei 40 Grad kam ich drauf, gelegentlich mit der Spritze kaltes Wasser zuzukippen.
Zum Schluss brauchte ich noch etwas Eis, weil ich einfach nicht auf 15° runterkam.
Viele Kniebeugen später:
Im unteren Bereich sind die Werte recht linear, aber ab 55° knickt die Kurve ab.
So langsam habe ich alles zusammen, was ich an Messwerten brauche. Jetzt kann ich mich an die Ablaufsteuerung machen...
Oktober 2009:
Die eigentliche Ablaufsteuerung war nicht wirklich schwierig. Da habe ich ein paar SPS-Funktionen locker aneinandergehängt.
Ich habe dann einfach einen Haufen an wählbaren Programmen mit Variationen in der
Anzahl der Spülgänge, dem gewünschten Wasserstand und der Schleuderdrehzahl eingebaut.
Über einen kleinen Hex-Drehschalter auf der Platine läßt sich das Programm einstellen.
Aber sich zu überlegen, welche Pausen- und Drehzeiten man nun nimmt, hat viel Zeit in Anspruch genommen. Einen Großteil davon habe ich gemütlich mit einem Stenoblock, einem Bier und einer Stoppuhr vor der neuen Waschmaschine verbracht.
Fernsehen mal anders: 8 Sekunden Links rum, 3 Sekunden Pause, 8 Sekunden rechts rum. Waschmaschine gucken ist sehr entspannend!
Eine weitere Herausforderung war das Auswuchten der Wäsche vor dem Schleudern. Wie oben beschrieben, sollte klar sein,
dass die Maschine Samba tanzt, wenn man das nicht ordentlich hinbekommt.
Dezember 2009:
Die Maschine ist nun so weit, dass die Wäsche gewaschen wird. Das mit dem Auswuchten vor dem Schleudern habe ich in unzähligen
Versuchsreihen soweit optimiert, dass meine Testwäsche so gut verteilt wird, dass die Maschine beim Schleudern nicht durch den Raum hüpft.
In meiner Software habe ich letztendlich zwei verschiedene Auswucht-Verfahren eingebaut, die nacheinander ausprobiert werden. Wer wissen will,
wie das genau geht, muss in den Quellcode schauen. Grundsätzlich geht das aber so, dass man die Drehzahl langsam erhöht,
bis sich ein Wäschering bildet, denn man dann vorsichtig größer zieht, indem man noch ein wenig schneller wird. Wenn die Unwucht dann irgendwann
klein genug ist, sofort hochtouren.
Blöd war allerdings, dass nach dem Spülen immer noch recht viel Waschmittel in der Wäsche verblieb.
Was soll man verändern? Die Zykluszeiten beim Reversieren ? Oder mehr Wasser? Oder einfach einen Spülgang mehr?. Um das Ergebnis zu beurteilen, brauche ich erstmal ein Verfahren, mit dem ich objektiv die Menge an verbliebenem Waschmittel nach dem Spülen bestimmen kann. Dann kann ich an den Parametern drehen und messen, ob das Ergebnis besser wird.
Ich könnte ein bestimmtes Wäschestück nach dem Waschen in 1l Wasser tunken und dann die Trübung oder den ph-Wert Messen. Aber wird die Änderung so groß sein, dass sich das im ph-Wert niederschlägt?
Bei den ganzen Überlegungen sind mir einige andere Projekte dazwischengerutscht, so dass die Waschmaschine irgendwann kein Thema mehr war.
August 2011: Meine älteste Tochter ist in eine eigene Wohnung gezogen - jetzt braucht sie eine Waschmaschine!
Dann muss ich da wohl mal verschärft beigehen. Also erstmal den Apparillo wieder anschließen.
Oh, Zu- und Abwasser sind noch angeschlossen.
Also Stecker rein und den Wasserhahn aufdrehen.
Oh, Wasserhahn ist noch aufgedreht!
Und das seit fast 2 Jahren. Also sind die Magnetventile wenigstens dicht.
Äh, dann kanns ja losgehen: Laptop angeschlossen und einfach mal laufen gelassen. Hey, die macht ja prima einen 30° Buntwäsche Durchlauf. Ich habe dann noch mal in die alte Dokumentation geschaut um rauszufinden, wie weit ich eigentlich war. Ah - der kleine Drehschalter stellt das Programm ein. Dann bin ich ja schon fast fertig!
Nur dass mir noch zuviel Waschmittel in der Wäsche verbleibt. Und ich muss mir ja auch noch eine Bedienung ausdenken.
Zusammen mit meiner Tochter habe ich diverse Optionen durchgesprochen. Wir haben uns dann für einen großen grünen Hauptschalter und einen Drehschalter für die Waschprogramme geeinigt. Sie meinte, dass sie eigentlich immer nur das gleiche Programm nutzen würde, also könnte man den Drehschalter ruhig weglassen. Ich fand, dass zumindest 2 oder 3 Waschprogramme sinnvoll seien, aber wenn sie wolle, könne sie ja auf alle Schalterstellungen das gleiche Programm legen. Der Vorteil: Dann kann auch ihr Freund die Maschine nicht falsch bedienen.
Als ich das Frontpanel auseinandergenommen habe, um die neuen Schalter einzubauen, bin ich auf eine 6-polige Steckverbindung am Original-Drehschalter
gestoßen. Mal kurz durchgemessen ergab, dass es eine gemeinsame Masseleitung gibt mit der je nach Schalterstellung die anderen
5 Leitungen verbunden werden.
Super! Dann nehme ich doch den Schalter und bin ruck-Zuck fertig.
Das Anschlusskabel habe ich mit einem Stück Platine ans Kleinhirn gefrickelt:
Keine gute Idee war, die Schaltung auf das Querblech zu stellen, denn die Rillen im Querblech waren ein wenig zu tief. Dadurch hat ein Draht (an einem Kippschalter) das Blech berührt. Ist doch egal, oder? Leider liegt die Schaltung aufgrund der Triacs auf Netzpotential und der Netzstecker steckte dummerweise so rum drin, dass die Prozessormasse auf Netzphase lag.
Der Effekt war, dass sich mir beim Einschalten ein prima Feuerwerk mit Blitz, Rauch und Knall bot. Zu Silvester finde ich sowas prima, in meiner Waschmaschine fand ich das total Kacke. Hirntod! Der Prozessor hatte den Deckel auf und ich den Blutdruck auf Anschlag:
Das Großhirn war schnell ersetzt (war ja nur gesteckt) und auch neu programmiert.
Beim Einschalten gab's erneut Feuerwerk - diesmal aus der
Waschmaschinenplatine. Das Netzteil hatte offenbar auch was weg bekommen und die Reste verdampften grade.
Das war ein Tag, an dem ich fast die Lust verloren hätte. Wieder bei Null anfangen. Seufz, Stöhn! Da fallen mir ein paar Filmzitate ein:
[Apollo13]:
Jim: Houston - wir haben ein Problem
Gene: Ein Fehlschlag ist nicht akzeptabel!
Blanch: Mach dir mal keine Sorgen Schätzchen. Wenn eine Waschmaschiene fliegen könnte, mein Jimmy könnte sie landen!
Wenn ich schon mal neu anfangen muss, kann ich mir auch gleich überlegen, wie die Elektronik nacher in der Waschmaschine untergebracht wird. Am Besten wäre es, das Originalgehäuse zu verwenden.
Einer meiner Leser hatte mir freundlicherweise vor Jahren eine Ersatzplatine zugeschickt. Die konnnte ich ja direkt verwenden und musste nicht das abgerauchte Teil flicken.
Für das Großhirn hatte ich einen schönen Platz auf der Platine gefunden: Auf dem Originalprozessor. Statt den auszulöten habe ich ihn als Sockel missbraucht. Dazu wurde er ausgehöhlt, bis der eigentliche Chip weg war:
Das Loch habe ich dann mit 5-Minuten-Epoxy aufgefüllt und eine Platine draufgeklebt:
Auf der Platine ein ATmega168 in SMD-Ausführung.
Die Anschlusspads auf der Platine wurden mit Fädeldraht an den Prozessor gehäkelt:
Schön fand ich, dass ich den Quarz auf der Originalplatine verwenden konnte.
Mein ISP-Programmieranschluss kam in die Anschlusswanne für das Original-Bedienpanel:
Später habe ich die beiden Plastikteile miteinander verschweißt:
Das Kleinhirn habe ich auf einer großen Platine mit 9-poligem SUB-D Stecker untergebracht:
Die Idee war, die Platine mit den Befestigungsbolzen des Sub-D Steckers am Gehäuse zu befestigen. Leider war das Gehäuse innen zu niedrig. Also habe ich die Anschlussbeine des Steckers gekürzt. Gelötet wurde von unten: einen Draht durch die Bohrung schieben, auf der Unterseite den Lötkolben dran, oben Zinn dran. Das hört sich ein wenig abenteuerlich an, klappte aber ganz gut:
Damit es nicht wieder versehentliche Kurzschlüsse gibt, habe ich die Unterseite mit Uhu-Endfest versiegelt. Jetzt dürfte auch bei kräftiger Rappelei nix mehr passieren!
Mit Plastikgehäuse sieht das so aus:
Bei der Inbetriebnahme der nächste Schock: Die Druckmessdose hat's auch zerrissen! Ersatzteil 86€.
Also mal aufschrauben:
Da ist also ein PIC-Microprozessor drin verbaut:
Die Messspule war noch heile. Also könnte man rausfinden, wie so eine Dose funktioniert und dann die Elektronik selber bauen. Und dann die ganzen Wasserstands-Kalibrierungen nochmal machen.
Ich bin heilfroh, dass mir das erspart geblieben ist, denn ich habe eine gebrauchte Druckmessdose für 15€ vor die Tür gelegt bekommen. Das war's mir allemal wert!
Ich wollte ja ein Weichspülen für Männer einbauen. Meine Version ist nix für Softies:
Die Idee war, beim einspülen des Weichspülers die Pumpe die ersten
20 Sekunden mitlaufen zu lassen. Das hat den Riesenvorteil dass dieser Scheiß Chemiekrempel nicht an meine Wäsche kommt. Und da hinterher das
Fach für den Weichspüler leer ist, ist auch die Hausfrau zufrieden, die sich die Notwendigkeit für dieses fiese Zeugs von der
Fernsehwerbung hat einreden lassen. Meine Tochter hatte von der Sache Wind bekommen und wollte aber ein echtes Weichspülprogramm, bei dem
die Wäsche wirklich mit diesem Chemiefilm überzogen wird.
Da sie sich grade zur Mathematisch-technischen Softwareentwicklerin ausbilden läßt und
Scientific Programming studiert und momentan grade das Thema "Programmieren in C" hat, habe ich ihr vorgeschlagen, sich das Weichspülprogramm doch
einfach selber zu schreiben.
Das hat auch prima hingehauen - dafür, dass sie keinen Compiler zum prüfen hatte, waren im Code erstaunlich wenig Tippfehler.
Inzwischen hatte mich der Ehrgeiz gepackt und ich habe noch ein Display mit serieller Schnittstelle spendiert. Zur Befestigung habe ich PVC-Streifen hinter die Frontblende geklebt:
Ich habe mal mehrere defekte Displays abgestaubt, bei denen entweder das Display oder die Hintergrundbeleuchtung defekt ist. Durch Transplantation von 2 LEDs hatte ich ein funktionierendes Display. Dann kam noch ein neuer Prozessor drauf und das Anschlusskabel wurde mit 5-Minuten Epoxy fixiert:
Wie man sieht, sind die ganzen Löcher für die ursprünglichen Taster und LEDs alle mit grauen PVC-Streifen abgedeckt.
Die Durchführung in die Maschine hat eine Blechkante, die ein wenig entschärft wurde. Wenn sich das Kabel durchscheuert zerballert es mir sonst wieder die Elektronik.
Deshalb ist die Zuleitung zum Sub-D-Stecker auch durch soliden Schrumpfschlauch geschützt:
Von vorne sieht die Maschine jetzt so aus:
Zum Testen des Displays habe ich die alte Platine genommen und da die Großhirnsoftware reingespielt. Als alles prima lief, kam die Software in die richtige Waschmaschine. Blöderweise funktionierte das Display in der Maschine nicht. Und auch die Kommunikation mit dem Kleinhirn klappte nicht. Aber alle Leitungen waren in Ordnung. Also ist da wohl wieder was kaputt gegangen. Man könnte die Lust verlieren!
Irgendwann habe ich den Fehler dann gesehen und mir kräftig vor die Stirn geklatscht: Der Quarz vom Großhirn isses! Ich hatte einen 16.384MHz Quarz vorgesehen, auf der Originalplatine war jedoch ein 4MHz Typ. Wohin nun mit dem fetten 16MHz Quarz?
Mittels Sekundenkleber und UHU Endfest war das Problem schnell behoben:
Da klappts auch mit der Kommunikation. Das Kleinhirn plappert prima vor sich hin und das Display informiert:
Die angezeigte Temperatur habe ich mit dem IR-Thermometer kontrolliert: Stimmt haargenau!
Und dann habe ich endlich herausgefunden, warum die Spülgänge so lausig sind: Ich hatte vor Jahren bei der Rekonstruktion des Schaltplans
einen Fehler gemacht und dabei die Anschlüsse der Magnetventile für Weichspülen und Haupwäsche vertauscht.
Das heisst, die Wäsche wurde immer ohne Waschpulver gewaschen und erst beim letzten Spülgang wurde das Waschpulver eingespült.
Das ist erst jetzt aufgefallen, als ich das Weichspülprogramm meiner Tochter testen wollte: Der Weichspüler war noch drin, das Waschpulver weg.
Ein erster Test mit richtiger Wäsche war erfolgreich: Kurzprogramm 40° lief prima.
Dann kam meine Tochter mit einer Ladung Bettwäsche und Saunahandtüchern. Der Härtetest: 60° Buntwäsche ist ja nix besonderes, aber die Maschine war proppevoll. Das soll man nie machen! Aber ich wollte es einfach mal wissen: Was passiert bei Maximalbeladung? Wird das Schleudern die Maschine umbringen?
Die Wäsche hat sich so vollgesogen, dass der Motor sich schon beim Reversieren extrem gequält hat. Das erste Auswuchten hat dann prima geklappt, nach dem 1. Spülgang überhaupt nicht. Die Maschine hat sich mächtig geschüttelt und es hat furchtbar gedröhnt - Kaleu: das muss das Boot abkönnen . Da der Apparat sowas aushält, kann ich ihn bedenkenlos in die Obhut meiner Tochter geben.
Bleiben nur noch 2 Probleme:
1) Wo habe ich bloß die Schrauben für Deckel und Rückwand hingekramt?
2) Das Monster muss aus meinem Keller und bei meiner Tochter durch ein enges Treppenhaus in den 3. Stock
Na ja, Blechschrauben gibt''s im Baumarkt. Und die Maschine muss ich doch nur als für Selbstabholer anpreisen, oder?
Die Software gibt's hier: 83waschmaschine.zip
Sie kann allerdings nicht kommerziell genutzt werden, da sie dann einige Patente verletzt. Ich habe da ein paar Besonderheiten drin, die geschützt sind. Ich habe aus Neugier Unmengen an Patentschriften zu Waschmaschinen gelesen. Es ist unglaublich, was für primitive Ideen da geschützt werden. Ein paar Beispiele wären die Form der Löcher in der Trommel, die Größe der Öffnung, oder die Anordnung der Mitnehmer. Aber manches ist auch wirklich interessant - und ich konnte es ja ausprobieren.
Manche gut klingende Idee erwies sich dann allerdings als Flopp: Es gibt ein Patent darauf, beim Reversieren die Drehzahl langsam zu erhöhen. Das soll wohl bewirken, dass mal größere und mal kleinere Wäschestücke außen an der Trommel landen. Bei mir hat es lediglich bewirkt, dass sich recht zuverlässig Knäule von Wäsche gebildet haben, die in der Trommel rumrollten statt durchgewalkt zu werden. Der Kram ist also achtkantig wieder rausgeflogen.
Dringeblieben ist z.B. folgendes: Während des Reversierens wird die Trommeldrehzahl gelegentlich über die Fliehkraftgrenze von 62 1/min
erhöht. Bei 86 Touren wird dann die Lauge mit der Fliehkraft kraftvoll durch die Wäsche gedrückt. Funktioniert prima!
Unter deutlichem Gestöhne der Transportmannschaft hat das Objekt die Zielposition im 3. Stock erreicht. Angeschlossen, ausgerichtet, alles Prima.
Am nächsten Abend dann ein Anruf: Die Wäsche ist noch pitschnass, wenn man dann nochmal auf Schleudern stellt, kommt die Fehlermeldung "Wasserstand zu hoch".
Mist - was ist den da schief gegangen? Zu hoher Wasserstand kann eigentlich nur von defektem Magnetventil oder kaputter Pumpe oder Softwarefehler kommen.
Nach viel Rätselraten (Softwerker haben immer ein schlechtes Gewissen), dem Test, ob vielleicht der Abwasserschlauch irgendwo geknickt oder verklemmt ist, kam
ich zu dem einzig richtigen Versuch: Abwasserschlauch in Eimer halten, dann abpumpen und mal sehen, wass passiert.
Da kam nur ein Rinnsal.
Das alles fernmündlich. Meine Tochter hat den Fehler dann auch entdeckt: Dreck im Anschlussstück. Eine Analyse, ergab: die Vorgängerin hat ihre WaMa abgebaut, wodurch beim Spülwasser ablassen wohl Wasser aus dem WaMa-Anschlußstutzen kam. Daher hat sie das Teil statt mit einer Dichtplatte provisorisch zugepfropft. Ein wenig mit einer Pinzette dran gezogen, da hörte ich durch den Hörer ein iiii kreischen, weil die Pumpe sich nun mit kräftigem Schwall durchgesetzt hat. Siehste: is nich immer die olle Software! Im Gegenteil: die hat alles richtig gemacht! Der Wasserstand war definitiv zu hoch.
Statt das Anschlußstück freizuprokeln hat meine Tochter es kurzerhand ersetzt und ich konnte das Original nun ablichten.
Darin steckt ein ordentlicher Pfropfen aus einer mit Teppichklebeband und Papier umwickelten Filzstiftkappe. Sehr effektiv!
Die Erkennung des zu hohen Wasserstandes hat beim Schleudern immer wieder zugeschlagen. Also wurde die Erkennung an die Motordrehzahl gekoppelt. Nachdem sie aber doch noch mal fälschlicherweise zugeschlagen hat, habe ich den Kram komplett rausgeworfen. Nun läuft sie Prima.
Aus Spaß habe ich eine Zufallsfunktion eingebaut, die am Ende des Waschvorgangs zufällig einen von 8 Texten ausgibt. Diese Innovation hat noch keine kommerzielle Maschine!
Und wenn der Apparat am Ende "Tabea gewinnt" ausgibt, hat meine Tochter einen gut.
Nun hat sie also einen Spielautomaten, der auch Wäsche waschen kann - einmalig, oder?
Kommentieren | Startseite |
Diese Seiten sind darauf optimiert mit möglichst jedem Browser zu funktionieren.
Aber der Seitenquelltext (strg-U) sieht auch interessant aus, zumindest wenn man ihn mit einem Monospace Font in sehr kleiner Schriftgröße betrachtet.