Ein Thermomixer

Die begriffliche Verbindung zu einer Küchenmaschine fast gleichen Namens wurde gewählt, weil es darum geht zu zeigen, dass Haushaltsautomaten wie diese auf überschaubaren Wirkprinzipien beruhen. Dies sind Heizelemente und motorgetriebene Rühr- oder Schnitzelwerkzeuge, die zeit- oder sensorgesteuert an- und abschalten.

Anhand eines ausgedachten Milchaufschäumer-Modells können solche Funktionsweisen nachempfunden und beispielhaft realisiert werden.

Für das Gerät wird ein Motor benötigt, der mit einem passenden Werkzeug die Milch aufschäumen und eine Heizplatte, die den Milchschaum erwärmen kann. Das Erhitzen überwacht ein Temperatursensor, der von einem Controller ausgelesen wird. Hat der Milchschaum die erwünschte Temperatur erreicht, schaltet der Controller Motor und Heizplatte ab und gibt über den Buzzer ein Signal aus. Mit dem Taster können diese Prozesse ausgelöst werden.

Eine Bastellösung könnte so realisiert werden: Die Elektronik findet im Fuß des beweglichen Rühraufsatzes Platz, an dem Motor, Deckel und Aufschäumwerkzeug Halt finden. Der Temperatursensor liegt an der Außenwand des Milchgefäßes an, das seinerseits auf der Heizplatte steht neben dem Einschalter. Die nötigen Kabelverbindungen sind nicht dargestellt.

Das Aufschäumwerkzeug besteht aus einem offenen Metallring, in den eine selbstgedrehte Drahtspirale gefädelt wird.

Ein 2mm starkes Messingrohr eignet sich für die Verbindung mit dem Motor.

Der Deckel eines Marmeladenglases mit zentraler Bohrung kann die Sache abdecken.

Und hier eine zum Projekt passende Programmierung:

int TMP36 = A0;
int sensorwert;
int temperatur = 0;
int t = 2000;
int taster = 4;
int tasterstatus = 0;
int motor = 3;
int heizung = 2;
int buzzer = 5;
void setup()
{
  pinMode(TMP36, INPUT);
  pinMode(taster, INPUT);
  pinMode(motor, OUTPUT);
  pinMode(heizung, OUTPUT);
  pinMode(buzzer, OUTPUT);

  Serial.begin(9600);
}
void loop()
{
  sensorwert = analogRead(TMP36);
  tasterstatus = digitalRead(taster);
  if (tasterstatus == HIGH && sensorwert <= 160)
  {
    digitalWrite(motor, HIGH);
    digitalWrite(heizung, HIGH);
  }
  if (sensorwert > 160)
  {
    digitalWrite(motor, LOW);
    digitalWrite(heizung, LOW);
    tone(buzzer, 100);
    delay(2000);
    noTone(buzzer);
    while (true);
  }
  //temperatur = map(sensorwert, 0, 410, -50, 150);
  delay(t);
  Serial.print(sensorwert);
  Serial.println(); //(" Grad Celsius");
}