Mit drei Kindern kann man schon mal vergessen, seinen Teebeutel aus der Tasse zu nehmen. Damit das (meiner Frau) nicht mehr passiert, habe ich ihr einen Teetimer gebaut, der mehr kann als nur klingeln. Nach der eingestellten Zeit wird der Teebeutel über einen Servo Motor aus der Tasse geholt und ein Summer ertönt. Das Ganze wird über einen Arduino Nano Clon gesteuert.
Das Prinzip
Nach dem Einschalten läuft eine Zeit zwischen einer und zehn Minuten ab. Die Zeit kann über den Poti eingestellt werden. Der Servo fährt nach dem Einschalten in eine horizontale Position. Nachdem die Zeit abgelaufen ist, fährt der Servo so weit nach oben, dass der Teebeutel nicht mehr in der Tasse ist. Damit aber nicht genug, jeweils nach einem Drittel der eingestellten Zeit, bewegt er sich 3 mal um 10 Grad nach oben und wieder um 10 Grad nach unten in seine horizontale Position. Somit wird der Teebeutel im Wasser 3 mal etwas bewegt, was dafür sorgt, dass sich der Tee noch besser im Wasser löst.
Offene Seitenansicht mit Arduino auf gefräster Platine und diversen elektronischen Bauteilen. Das Innenleben ließe sich bestimmt noch schöner gestalten. Für etwas, das man nicht sieht, fehlt mir aber meistens die Motivation es super schön zu machen. Den Poti habe ich auf ein kleines Holz geschraubt. So sieht man auf der Vorderseite nur den Regler.
Auf der anderen Seite befinden sich die Batteriehalterung und der direkt in die Lüsterklemme geschraubte Festspannungsregler.
Schaltung, Hardware
Um die Hardware so simpel wie möglich zu halten, gibt es nur einen Poti und einen EIN/AUS Schalter. Da nach dem Einschalten das Programm direkt abläuft und nach erreichen der Zeit der Arduino direkt wieder ausgeschaltet wird, entfallen weitere Taster. Ein Carson CS6 Servo und einen Piezo Summer mit integriertem Treiber machen die Hardware zusätzlich einfach, da sie direkt an den Arduino angeschlossen werden können und keine externe Spannung benötigen.
Schaltung, Software
Den Code habe ich mit Ardublock geschrieben. Hier einen Ausschnitt von dem Anfang des Programms. Unten findet ihr sowohl die Ardublockdatei, wie auch den Code in der Arduino IDE.
Hier gibt es die gezipte Ardublockdatei
Wer sich wundert warum ich die 10 Minuten in 30000 Millisekunden auf 4x5 Schritte verteile und nicht einfach mit 600000 Millisekunden rechne, der muss sich den Block (warte Millisekunden) einmal genauer anschauen...
...und sieht, dass der maximale Wert (Standard integer constand) bei 32768 liegt. Hier kann ich zwar mehr als 32,768 eingeben, würde dann aber einfach beim Überschreiten automatisch negiert werden. So komme ich also nicht auf meine 60 0000 Millisekunden, also meine 10 Minuten. Da ich die Delay Zeit sowieso drei mal unterbrechen möchte, um den Teebeutel zu "schütteln", ergeben sich eben 4x5 Schritte, in denen die 60 0000 je nach Poti Stellung aufgeteilt werden. Der Poti wird also mit 0-1023 ausgelesen und macht daraus meine 0 (0 Minuten) bis 30 000 (10 Minuten), wobei die 10 Minuten erst durch die 5x4 Wiederholungen erreicht werden.
Hier die Vorlage für die Vorderseite
Bitte beachtet, dass ich einen speziellen Poti verwendet habe, der nur auf 180 funktioniert. Die meisten Potis haben aber um die 300 Grad. Deshalb hier die Vorlage für einen Standard Poti. Für die Software egal, für die Vorlage aber nicht.