Kaffeecontroller
Erstellt: 2009-12-20 • Letzte Änderung: 2016-01-30 [vor 8 Jahren, 10 Monaten, 10 Tagen]
Eine Philips Senso HD7810-Kaffemaschine bekommt eine komplett neue elektronische Steuerung,
basierend auf einem AVR ATtiny26.
|
Vorgeschichte
Die Kaffeemaschinen obigen Typs haben eine kleine Eigenart, die mich schon seit längerem nervt: Man muss die Maschine einschalten, eine Minute lang warten, bis der Boiler die Betriebstemperatur erreicht hat und kann erst dann seinen Kaffeewunsch per Knopfdruck (eine oder zwei Tassen) äußern. Früh morgens jedoch - wenn ich im Zombiemodus zur Maschine latsche und den On-/Off-Knopf drücke - entspricht die eine Minute ungefähr einer gefühlten Viertelstunde.Also wurde beschlossen, die Kaffeemaschine ein wenig intelligenter zu machen. Konkret bedeutet das, dass ich lediglich auf den Eine-Tasse-Knopf drücke, das Ding sich aufheizt, dann selbstständig OHNE erneuten Knopfdruck den Kaffee macht.
Erste Experimente, mit einem Hubmagneten aus einer alten Canon-Schreibmaschine die Knöpfe der Maschine von außen zu betätigen, schlugen aufgrund fehlender Schlagfertigkeit fehl. Noch schlechter klappte das ganze mit selbstgewickelten Elektromagneten, die über eine interessante Metallbaukasten-Hebelkonstruktion (durch Saugnäpfe an der Kaffeemaschine befestigt) die Knöpfe drücken sollten.
Also wurde die Taktik geändert und die Maschine geöffnet. Dort wurde die Stromversorgung (die übrigens kapazitiv funktioniert und ohne Trafo auskommt), die drei Schalter und die rote LED hinter dem On-/Off-Schalter angezapft und eine neue, grüne LED gleich neben der roten LED installiert. Ein ATtiny2313 sollte dann anhand der Knopfdrücke und der blinkenden roten LED den Status der Kaffeemaschine erkennen: Blinkende LED = Aufwärmen, leuchtende LED = Fertig. Die grüne LED sollte dann vom AVR angesteuert werden und dem Benutzer signalisieren, dass sein Wunsch entgegengenommen und schnellstmöglich ausgeführt wird.
Eigentlich hätte dieses Vorhaben eine Sache von ein paar Stunden werden und dann in den Improvisationen landen sollen. Obige Idee mit der angezapften Originalsteuerung funktionierte im ersten Test auch, bis ich die Hauptplatine wieder an ihre alte Stelle clippte (in der ganzen Maschine gibt es nur zwei Schrauben), zuerst den Programmieradapter und dann den Stecker einsteckte und es einen großen Knall gab.
Nach oben
Der große Knall
Was ist passiert? Die gesamte Kaffeeplatine liegt dank des fehlenden Trafos auf Netzspannungsniveau. Gepaart mit meinem Programmierdapter, der am geerdeten PC hängt, gab das einen saftigen Kurzschluss.Es wurde ein 680 Ohm-Widerstand von der Platine geschleudert und eine kleines Stück Leiterbahn direkt unter besagtem SMD-Widerstand ist verpufft. Nach Reparatur dieser beiden offensichtlichen Fehler flog der FI zwar nicht mehr raus, das wars dann aber auch schon; die Elektronik auf der Platine machte keinen Mucks und das kapazitive Netzteil lieferte keine Spannung. Nach weiterer Fehlersuche konnte ich den Fehler auf den auf der Originalplatine zu findenden Mikrocontroller HT46R47 eindämmen. Den hat es wohl zerschossen, da ist nichts zu machen.
BÄM! An der schwarzen Stelle hat sich ein SMD-Widerstand verabschiedet und hinterließ einen großen Schandfleck im Gehäuseinnern:
Nach diesem Malheur landete die Originalplatine in der Tonne und die Zeit war reif für ein eigenes Controllerboard!
(Anmerkung: Auf der Originalplatine findet sich ein 24C02-EEPROM. Was darauf wohl gespeichert ist?
Nach oben
Eigenes Controllerboard
Also muss jetzt tatsächlich von Grund auf eine eigene Steuerung für die Komponenten der Kaffeemaschine entworfen werden, die da wären:Pumpe – In der Kaffeemaschine findet sich eine Vibrationspumpe, die den nötigen Druck erzeugt, um das Wasser von unten durch den Boiler und durch das Kaffeepad zu pressen.
Zur Entzifferung des Typenschilds habe ich im Forum übrigens einen Thread eröffnet; dort finden sich mehr Infos.
Boiler – Der Boiler wird direkt an 230V betrieben und bringt das Wasser auf Betriebstemperatur.
Der Boiler ist oben am Kaffeemaschinenturm angeclippt und kann mit etwas Fummelei und einem Schraubenzieher abgenommen werden.
Achtung beim Entfernen der Schläuche! Im Boiler befindet sich immer noch Wasser, welches abgelassen werden muss.
NTC – Direkt auf dem Boiler sitzt ein NTC (Heißleiter), über den der Controller die Wassertemperatur erfassen kann.
Hallschalter – Zur Erfassung des Wasserstands findet ein Hallschalter Verwendung, der auf seiner eigenen kleinen Platine sitzt. Im abnehmbaren Wassertank der Maschine befindet sich ein Magnet, der bei genügend hohem Wasserstand schwimmt, bei zu wenig Wasser im Tank aber herabsinkt und den Hallschalter triggert.
Schaltplan
Nach viel Herumprobieren und ersten Experimenten mit TRIACs (siehe Foto rechts) entstand folgender Schaltplan. Beim Aufbau der Schaltung ist penibel auf saubere Trennung der 5V- und 230V-Sektionen zu achten. (Gut, mein Aufbau ist auch kein Musterbeispiel. Aber das passt schon.)Sollte ich erwähnen, dass auch meine finale Platine, die nun in der Maschine sitzt, vor Fertigstellung einmal hochgegangen ist? Hat glücklicherweise nur den AVR gekillt. Entweder Hochspannung oder 5V...alles dazwischen hat mir erstmal Kopfzerbrechen bereitet. xD
Platine
Aufgebaut sieht die ganze Geschichte so aus:Beim Aufbau der Schaltung musste besonderes Augenmerk auf die Bauhöhe der verwendeten Bauteile gerichtet werden, da der Platz in der Kaffeemaschine doch recht knapp bemessen ist. Ich musste sogar an einigen Stellen zuerst mit dem Cuttermesser kleine Plastikpartien absäbeln, bevor alles genau passte.
Die korrekte Position der Taster auf der Platine muss durch Ausprobieren gefunden werden. Außerdem musste der Plastikbügel, der die beiden äußeren Knöpfe innen verband, durchgeknipst werden, damit genug Platz für die RGB-LED bleibt. Diese strahlt in einen am Power-Knopf befestigten Lichtleiter und bringt diesen damit zum leuchten.
Es sei hiermit übrigens angemerkt, dass die Kühlkörper maßlos überdimensioniert sind.
Das Manual zum Auseinanderbauen der Maschine findet sich hier.
Oben am Wassercontainer gibt es einen kleinen Auslass, mit dessen Funktion ich mich nicht näher beschäftigt habe. Auf jeden Fall kommt aus selbigem manchmal etwas Wasser heraus. Da der ehemals auf dem Auslass sitzende "Wasserhahn" (nur ein kleines Plastikteil) im Laufe des Projektes abhandengekommen ist, sitzt oben nun einfach ein Stück schwarzer Schrumpfschlauch.
Nach oben
Funktionsweise
Der Ablauf des Programms ist relativ simpel; Füllstand und Temperatur werden als Spannungspegel vom Hallschalter- und NTC per ADC erfasst und in Software ausgewertet. Bei niedrigem Wasserstand passiert nichts; die LED blinkt lediglich rot. Ist genügend Wasser vorhanden, wird der Heizungs-TRIAC durchgesteuert und das Wasser wird erwärmt.Der "Kaffeewunsch" kann dabei jederzeit durch Druck auf einen der beiden Schalter (eine Tasse/zwei Tassen) geäußert werden, bleibt gespeichert und wird bei Erreichen der Betriebsbereitschaft (genug Wasser im Tank, Wassertemperatur erreicht) sofort ausgeführt. Der Pumpen-TRIAC wird für eine festgelegte Zeitdauer (18 Sekunden pro Tasse) so gezündet, dass nur Halbwellen gleicher Polarität durch die Spule der Pumpe fließen, der Zündungszeitpunkt wird mithilfe der Nulldurchgangserkennung ermittelt. Würde man die Pumpe mit der vollen Wechselspannung betreiben, ist das Fördervolumen - aus welchen Gründen auch immer, ich kenne mich damit noch nicht so gut aus - reduziert.
Nachdem das Lebenselixier geflossen ist wird der gespeicherte Kaffeewunsch gelöscht und das Spiel beginnt von vorn.
Nach oben
Fertig
Nach oben
Download
Den C-Sourcecode, mein Linux-Makefile und die brennfertige hex-Datei gibt es hier zum Download.Download: kaffeecontroller-1.0.zip [6.30 kiB] | |
[3083 Downloads] |
Nach oben