| Warum vergessen wir eigentlich ständig die Wäsche in der Maschine? Irgendwann letztes Jahr musste eine neue Waschmaschine her. Obwohl auf dem Stand der Technik mit bürstenlosem Motor und Digitaldisplay, gibt die neue keine Töne von sich wenn das Programm beendet ist. Da waren wir aber dran gewöhnt, weil die alte Bauknecht genau das gemacht hat! Die ganze Fummelei mit Mikrocontrollern könnte hier ja mal einen tieferen Sinn finden. Die Aufgabe für das zu bauende Gerät lautete: "Stelle fest, wann die Wäsche fertig ist und melde das akustisch." Das Ganze sollte ohne Eingriff in das Gerät passieren (Garantie, Netzspannung). Erste Versuche führten zu einem zerstörten Verbrauchsmessgerät, das ich für das Projekt zweckentfremden wollte. Dumm nur, dass die unerklärlicherweise in den Niederspannungsbereich geratene Netzspannung gleich noch einen USB-Programmer und mein PC-Mainboard mit ins Verderben gerissen hat. Das hier vorgestellte Platinchen nutzt stattdessen einen "AC Current Transformer" (Bild links) als zentrales Messinstrument. Der ist mit 1,80 Euro (per eBay aus China) außerdem viel preisgünstiger als das angedachte Verbrauchsmessgerät. Damit ist keine elektrische Verbindung zur Netzspannung erforderlich. Es reicht, eine stromführende Ader der Netzleitung durch das Loch zu legen. In dem Bauteil befindet sich eine Spule, in der durch die Induktion der Netzleitung eine Spannung erzeugt wird. Durch die Spannung fließt ein Strom über einen an den Spulenenden angeschlossenen Widerstand von 200 Ohm. Der dort entstehende Spannungsabfall ist proportional zum Strom (ich hoffe, ich habe das richtig verstanden), der im Leiter fließt und kann per A/D-Wandler im Mikrocontroller gemessen und ausgewertet werden. Das nach diesem Prinzip gebaute Gerät (nämlich der "Fertsch") bespitzelt unsere Waschmaschine nun seit einem Jahr ohne Probleme. Theoretisch wäre das auch für jedes andere Netzgerät anwendbar, vorausgesetzt der Unterschied in den Stromverbräuchen ist sicher unterscheidbar.
|
Das Messprinzip Was gibt der "AC Current Transformer 5A/5mA" nun aus? Eine Wechselspannung, dessen Amplitude vom Strom abhängig ist, der durch das Kabel fließt, das wir durch das Loch gefädelt haben (die Bilder stammen vom einem DSO203 Pocket Oszilloskop):
25W Glühlampe: Amplitude 66mV (Vpp)
| 40W Glühlampe: Amplitude 152mV (Vpp)
| 2000W Elektrogrill: Amplitude 16,3 V (Vpp)
| 2000W Elektrogrill - Der Messausgang ist am ATtiny angeschlossen. Hier wirkt die interne Schutzdiode: Amplitude 6,24 V (Vpp)
|
Der Fertsch selektiert mittels des A/D Wandlers im ATtiny nur die positiven Maximalwerte (massebezogen). Dadurch ersparen wir uns weitere hardwaremäßige Aufbereitung der Messwerte. Die Beaufschlagung des Messeingangs mit den zeitweise doch recht hohen Spannungsspitzen hat der Tiny jetzt schon 1 Jahr ausgehalten. Die Heizung der Waschmaschine braucht mit Sicherheit 2000W oder mehr.
|
Hardware Die ganze Mimik wird von einem ATtiny45 oder ATtiny85 gesteuert (die Codegröße würde sogar einen ATTiny25 zulassen). Diese spielen in der 1-Euro-Klasse und sind leicht zu beschaffen. Für die akustische Meldung sorgt ein Piezo-Schallwandler, der direkt vom ATtiny angesteuert wird. Für die eigentliche Aufgabe nicht erforderlich ist die LED nebst Vorwiderstand (aber es ist einfach immer schön zu zu sehen, dass die Schaltung noch lebt). Die Anpassung der Messparameter geschieht durch Anpassungen direkt im Quelltext der Firmware. Die Platine erhält deshalb einen Wannenstecker für die komfortable ISP-Programmierung. Fünf Bauteile (plus Wannenstecker und Kabelbrücken) sind auf einer Streifenraster-Platine aufgebaut. Der Stromsensor mit dem 200Ohm Widerstand sitzt nicht auf der Platine, er muss ja da hin, wo ein Netzkabel erreichbar ist. Bei mir ist er im Gehäuse der Aufputz-Steckdosen untergebracht. Von dort gehen zwei dünne Litzen zum Messeingang des Mikrocontrollers. Dort, wo auf der folgenden Skizze die roten, quadratischen Symbole liegen, muss die Leiterbahn unterbrochen werden, außerdem natürlich zwischen den beiden Kontaktreihen des Wannensteckers! Serielle Datenausgabe: Eine Besonderheit ist, dass im Betrieb hier Mess- und Grenzwerte als serielle Daten ausgegeben werden und zwar mit 4800 Baud (8,N,1) an Pin 9 direkt gegenüber dem Massepin 10. Der Signalmodus ist für eine native serielle Schnittstelle oder einen USB-Seriell-Adapter ausgelegt. Wollen wir einen USB-TTL-Adapter verwenden, müssen wir im Quelltext den SoftUart.Mode von "inverted" in "normal" ändern. An Pin 9 hängt auch die LED, sie leuchtet im Takt der Datenübertragung. Der relativ große Vorwiderstand trägt den Lichtverhältnissen im Keller Rechnung. Der Summer ist eine Type mit eigenem Oszillator. Der Mikrocontroller gibt lediglich Spannung auf den Pin und muss den Ton nicht selbst erzeugen. Die Spannungsversorgung kommt bei mir von einem USB-Netzteil (5 V) und läuft permanent.
|
Software Es hätte alles so einfach sein können. Ich hatte mir erhofft, dass immer messtechnisch zu unterscheiden ist, ob die Waschmaschine noch arbeitet oder komplett fertig ist. Fehlanzeige; zwischen Trommel-STOP/keine Heizung/keine Pumpe/kein Magnetventil und Programm-ENDE ist kein Unterschied zu messen. Jetzt kam die serielle Datenausgabe ins Spiel. Flugs den ganzen Waschvorgang mit einem Terminalprogramm mitgeloggt. Erkenntnis: - In Waschpausen Messwerte wie bei Programmende (hatten wir gerade erwähnt)
- Längste Waschpause im Feinwaschprogramm = 80 Sekunden
- Beim Heizen und Trommeldrehen sind die Messwerte am Anschlag (1023 bei 1,1V Referenz) - egal
Das Programm macht jetzt folgendes: - Aus 1780 Messwerten wird der Maximalwert ermittelt; das ganze dreimal hintereinander.
- Sind alle drei Maximalwerte über einem Schwellwert, ist der Status für das überwachte Gerät = "EIN".
- War der Gerätestatus vorher "AUS", kommt ein kurzer Quittungston und das eigentliche Programm startet.
- Wird der Schwellwert 2 Minuten lang nicht überschritten, ertönt der Alarm und das Programm geht wieder in den Gerätestatus "AUS".
Der Quelltext für den freien LunaAVR Compiler gibt's am Ende der Seite zum Download.
|
|