Biomimetics and Dextrous Manipulation Lab


4Oct2017 update: The thermistor may have corroded. Need either a better solution for waterproofing (yogurt-proofing) or, thanks to George Toye, a better temperature solution altogether:

Works nicely, with a bit more time lag than the previous thermistor. Also changed code so that if one doesn't attend to the "beep" it just lets things continue to cool down.

End result:


Arduino timer tutorial

Thermistor 10K

Looks like ~5k resistor for voltage divider would be good.


Also need ~5V power supply, switch, LEDs & resistors, buzzer

Yobot Circuit:

Latest version of the program V3

Basic Program

(There are some additional checks, diagnostics etc.)


  • set pin names
    • inputs: analogPin for thermistor; yogPin for switch "yogurt added"
    • outputs: relaypin; yellowLED; buzzer
  • define constants
    • thermistor readings (maxboil ~95C: heater off; minbrew ~40C: heater on; maxbrew ~45C: heater off; cooled; disconnected)
    • logical: neverboiled; switchval; temperature; heattime; startup;


  • assign pin numbers for input, output

Main loop

  • Get milliseconds (1 minute = 60000 ms)
  • Read temperature on analogPin

if (time < startup time)

  • check if temperature status = thermistor disconnected (complain if so)
  • check if "yogurt added" switch on (complain if so)

Heating Phase
if(time < maximum heating time && never-boiled)

  • yellow LED on
  • if temp < maxboil
    • heater relay => on;
  • if temp > maxboil
    • heater relay => off; never-boiled = false

Cool-down and Brewing

  • Yellow LED => off

if (temp < minbrew && yogurt not added)

  • Complain (Beep) to add yogurt
  • If(temp< minbrew) => heater relay on
  • If (temp>maxbrew) => heater relay off
Page last modified on January 27, 2019, at 05:57 PM