arduino-peltier

Generar frío con Arduino y una placa Peltier

¿Qué es una placa Peltier?

Una placa Peltier es un dispositivo electrotérmico que permite generar frio a partir de electricidad.

Una placa Peltier actúa como una bomba de calor de estado sólido, es decir, es capaz de emplear energía para transferir calor de un foco frío a uno caliente, oponiéndose al gradiente de temperatura.

arduino-placa-peltier-funcionamiento Durante su funcionamiento una de las caras de una placa Peltier se calienta mientras que la otra se enfría. Dado que existen formas más sencillas y eficientes de generar calor, el uso habitual de estos dispositivos es la generación de frío.

Sin embargo, las leyes de la termodinámica insisten tozudamente en su obligado cumplimiento por lo que, si encendemos una placa Peltier directamente, el calor del lado frío y el lado caliente se igualan. Sumado a la disipación en forma de calor de la energía consumida por la placa hará que la temperatura de la placa se eleve rápidamente.

Para hacer funcionar una placa Peltier debemos dar salida al calor generado en la cara caliente para lo cual deberemos instalar un sistema de disipación. Cómo mínimo, debemos ubicar un disipador con ventilador en el lado caliente. También es recomendable un disipador en el lado frío.

arduino-placa-peltier-disipador

No hagáis funcionar una placa Peltier sin un sistema de sistema de disipación. Elevará su temperatura rápidamente y se fundirá en pocos segundos. Las temperaturas alcanzadas son suficientemente altas para ser peligrosas al contacto.

Las placas Peltier tienen la desventaja de requerir grandes corrientes para funcionar. Además, presentan una eficiencia relativamente baja como mecanismo de generación de frío.

Sin embargo, su sencillez, al no requerir partes móviles ni circuitos de fluidos, han hecho que se popularicen como mecanismos para la generación en equipos portátiles como pequeñas neveras o termos de bebidas.

Las bajas temperaturas alcanzadas en la cara fría pueden dar lugar a la condensación de agua. Esta agua puede dañar los elementos que deseamos refrigerar, sobre todo en el caso de componentes electrónicos.

Precio

Hasta hace poco tiempo las placas Peltier eran dispositivos prohibitivamente caros, pero en la actualidad han disminuido mucho su precio y son componentes asequibles.

Podemos encontrar placas Peltier como la TEC1 12706, por 1.55€ en vendedores internacionales de eBay y AliExpress.

La TEC1 12706 tiene unas dimensiones de 40x40x3mm y contiene 127 pares de uniones. La potencia eléctrica es de 60W, siendo la tensión nominal 12V y la corriente nominal 5A.

Puede alcanzar un diferencial de temperatura máximo de 65ºC entre ambas caras en condiciones ideales. El rango de temperaturas en el que puede trabajar sin dañarse es de -55ºC a 83ºC. La vida media de una placa Peltier supera los 200.000 horas, si la mantenemos en el rango de temperaturas apropiado.

La eficiencia de refrigeración de las placas, sin contar el gasto energético del ventilador, está en torno a un 20-25%. Es decir, la TEC1 12706 puede extraer unos 12-15W de calor. Sin embargo, el valor final depende enormemente de la temperatura ambiente y del sistema de disipación instalado.

Existen otros modelos dentro de la serie TEC1, como la 12710 con una potencia eléctrica de 100W por unos 3€, o la 12715 con una potencia eléctrica de 138W por unos 3.40€. Si embargo, tener en cuenta que el consumo de corriente de estos modelos es muy elevado y tendremos problemas para encenderlo con un relé normal de 10A.

arduino-placa-peltier-componente

Además, tendremos que sumar el sistema de disipación. Podemos usar un disipador barato de CPU de ordenador que podemos encontrar por unos 6€.

También podemos reciclar algún disipador antiguo, los disipadores tipo Pentium 4 encajan muy bien, y son fáciles de conseguir de segunda mano u ordenadores retirados.

arduino-placa-peltier-heatsink

¿Cómo funciona una placa Peltier?

El efecto Peltier es uno de los tres efectos termoeléctricos clásicos (SeedBeck, Peltier y Thomson).

El efecto Seebeck fue descubierto en 1821 por el físico alemán Thomas Johann Seebeck. Al establecer un circuito cerrado entre dos metales diferentes y aplicar una diferencia de temperaturas entre ambas uniones aparece una corriente eléctrica.

En 1832 el francés Jean Charles Athanase Peltier descubre el efecto contrario, es decir, en un circuito cerrado formado por dos metales diferentes, al hacer circular una corriente aparece una diferencia de temperatura entre ambas uniones.

El motivo en ambos fenómenos es la diferente concentración de electrones libres entre ambos metales que establecen dos barreras de potencial al paso de electrones, inversa en cada unión, lo que produce una emisión o absorción de calor.

Sin embargo, sus aplicaciones prácticas tuvieron que esperar ya que el efecto en metales es reducido. No fue hasta 1947 con la invención del transistor y el desarrollo de materiales semiconductores de alta pureza de dopado que se dispuso de materiales para aprovechar estos efectos.

Una placa Peltier está formada por múltiples celdas de materiales N y P ubicadas entre dos caras cerámicas. Habitualmente se emplea Telurio y Bismuto como semiconductores y óxido de aluminio para las placas cerámicas

arduino-placa-peltier-interior

Las distintas celdas están conectadas en serie, y las uniones dispuestas de forma que las uniones N-P están en contacto con una de las caras cerámicas de la placa Peltier y las uniones P-N con la otra cara.

Al hacer circular corriente por el dispositivo una de las caras absorbe calor y otra la emite. El papel de cada cara depende del sentido de la corriente. De hecho, es posible invertir el flujo de calor invirtiendo el sentido de la corriente.

Esquema de montaje

Las placas Peltier consumen una gran cantidad de corriente, por lo que para su encendido lo más sencillo es emplear un salida por relé.

arduino-placa-peltier-montaje

Conectamos la placa Peltier y el ventilador a 12V, interponiendo el relé como un interruptor.

Por otro lado, alimentamos la electrónica del relé conectando Vcc y GND respectivamente a 5V y GND de Arduino. Finalmente conectamos el pin IN a una de las salidas digitales de Arduino.

arduino-placa-peltier-conexion

Para montar los dispositivos podéis atornillarlos, si los disipadores tienen los agujeros empleados, o usar bridas plásticas formando un “sándwich” con la placa Peltier en medio.

Ejemplo de códigode montaje

El código necesario es sencillo, ya que para a controlar nuestra placa Peltier únicamente necesitamos emplear una salida digital, tal y como vimos en la entrada salidas digitales.

Por ejemplo, el siguiente código simplemente encendería la placa 5 segundos, dejándola apagada 10 segundos.

const int pin = 9;

void setup() {
  pinMode(pin, OUTPUT);  //definir pin como salida
}
 
void loop(){
  digitalWrite(pin, HIGH);   // poner el Pin en HIGH
  delay(5000);               // esperar 5 segundos
  digitalWrite(pin, LOW);    // poner el Pin en LOW
  delay(10000);               // esperar 10 segundos
}

Lógicamente, esto no es muy interesante. Sin embargo, podemos combinarlo con uno de los múltiples sensores de temperatura que hemos visto (termistor, LM35, DS18B20, DHT11/DHT22) para encender la placa según la medición del sensor, manteniendo la temperatura constante.

Asumamos que tenemos una cierta función GetTemperature() que nos proporciona la medición del sensor. Deberemos sustituir esta función por el cálculo adecuado, en función del sensor que estemos empleando.

Ahora definimos una cierta histéresis mediante dos umbrales. Cuando la temperatura sobrepase el umbral superior provocará el encendido de la placa Peltier. Esta permanecerá encendida hasta que llegue a un umbral inferior, y finalmente se apagará al alcanzarlo.

Si definiéramos un único umbral para la activación y desactivación tendríamos múltiples encendidos y apagados, y el sensor sería muy sensible al ruido. Al final terminaríamos dañando el relé.

const int pin = 9;

const float thresholdLOW = 20.0;
const float thresholdHIGH= 30.0;

bool state = 0; //placa Peltier desacivada o desactivada

float GetTemperature()
{
  return 20.0;  //sustituir en función del sensor empleado
}

void setup() {
  pinMode(pin, OUTPUT);  //definir pin como salida
}
 
void loop(){
  float currentTemperature = GetTemperature();

  if(state == 0 && currentTemperature > thresholdHIGH)
  {
      state = 1;
      digitalWrite(pin, HIGH);   // encender la placa Peltier
  }
  if(state == 1 && currentTemperature < thresholdLOW)
  {
      state == 0;
      digitalWrite(pin, LOW);   // apagar la placa Peltier
  }

   delay(5000);  // esperar 5 segundos entre medicioens
 }

Descarga el código

Todo el código de esta entrada está disponible para su descarga en Github. github-full