Introduction: Cup Cooler

About: geek with a business degree
This is my first Instructable, so please judge harshly so that I can learn :)
Its a simple project minimal skills needed.
Drawings are made using: Fritzing
Code Written using Codebender


The cold plate got to -20c
Watter in the cup measured @ 5.5c compared to icecube @2.5c

Step 1: Things to Find

list of items i have used:
Arduino uno
Breadboard
220ohm resistor (i have used 3 x750 in parallel as couldn't find anything smaller) anything from 100 to 220 will do.
12v dc fan 3 wire but 2wire will do the same job.
TEC1-12704 TEC Thermoelectric Cooler
12volt DC adaptor 2.5 amp
Optocoupler 4N33
jumper wires
LM355Z Temperature Sensor
Thermal Past 
Glue Gun

Step 2: Wiring Everything

Optocoupler 4N33
Pin1 -  Digital I/O 9 via 220Ohm resistor
Pin2 - Ground
Pin4 - DC fan Positive
Pin5 - 12V positive

DC Fan
Ground - to 12v Ground

LM335 Temp sensor
Vin - 5V arudino
Grn - Ground arduino
Vout - Analog 0

TEC1-12704 TEC
Positive to 12v DC positive
Negative to 12v DC negative

Better would to add a switch or another Optocoupler to turn ON/OFF



Step 3: Building

The cool side of Thermoelectric Cooler goes up, I have placed small heat-sink (used thermal paste for better cool transfer). Heat-sink needs to be bin enough to hold a cup.
The hot side is facing down another layer of thermal paste and a massive heat-sink to absorb all the heat (you don't want it to effect cooling).
Glue gun to glue Thermoelectric Cooler to the heat-sinks.
And a fan attached to the heat-sink which is activated when temp reaches 34 degrees Celsius, then runs for 20 seconds and start monitoring temperature again.
If heat-sink gets too hot it will kill the cooling power...
The code is http://codebender.cc/sketch:8769

I have used LM335 Library which help with measuring temp: you can find it @ https://code.google.com/p/alm335/downloads/list
I
f you dont know how to install it here is great tutorial @ http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-libraries

Step 4: The Code

#include <aLM335.h>

/*  Taken from http://codebender.cc/sketch:8769
*/


void setup() {

  Serial.begin(9600);
  pinMode(9, OUTPUT); //to control fan
}

void loop() {

  // We're using the two variable form of initialization, which defines both
  // the pin and the reference voltage.
aLM335 tempsensor (0, 5);
  Serial.println(tempsensor.getCelsius()); //geting temp reading just to make sure its working can be delleted latter

    if ( tempsensor.getCelsius() > 34 ){ // if temp is more than 34 start a fann for 20 seconds
      digitalWrite(9, HIGH) ;
  delay(20000); 
  }
  else
  {digitalWrite(9, LOW) ;//if temp is lower than 34 turn off the fan, and keep measuring temp every 5 seconds
    delay(5000);
  }
}