Mostrando entradas con la etiqueta 2004. Mostrar todas las entradas
Mostrando entradas con la etiqueta 2004. Mostrar todas las entradas

jueves, 6 de octubre de 2016

Generar frío con una Célula Peltier cerámica TEC1-12706


Hoy continuamos con nuestro aprendizaje dentro del mundo de la electrónica y por supuesto siempre con ARDUINO UNO, generando frío a partir de una célula Peltier. Está célula será controlada mediante dos pulsadores, uno para su encendido/apagado en el modo manual, donde la Célula Peltier se irá enfriando paulatinamente hasta llegar a la temperatura mínima límite (depende de la potencia con la que la alimentemos la célula), y el otro pulsador para entrar en el modo PID en el que la Célula Peltier trabajará de manera automática para mantener la temperatura de su cara fría entre unos rangos predefinidos (entre 16 y 18°C aproximadamente). La medida de dicha temperatura la realizaremos mediante el sensor de temperatura DS18B20, que montaremos sobre la cara fría de la Célula, además todo el proceso podrá ser visualizado a través de un display LCD 2004. Sin más preámbulos comenzaré analizando todos los componentes de los que necesitamos para realizar este curioso proyecto, además de mostraros la manera de enlazarlos y programarlos a través de nuestro ARDUINO.

Célula Peltier cerámica TEC1-12706

Una Célula Peltier o enfriador termoeléctrico (TEC) es un dispositivo capaz de generan una diferencia de temperatura entre sus caras cuando circula una corriente a través de él, es decir, una de sus caras se enfría (absorbe calor), mientras que la otra se calienta (emite calor). 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, aunque nosotros la vamos a alimentar directamente sin invertir sus polos, es decir, polo positivo de la célula al positivo de la fuente de alimentación y el negativo al negativo. En consecuencia, puede ser utilizada para enfriar, por debajo de la temperatura ambiente, a objetos que se encuentren en contacto con su cara fría, siendo ideal en controles de temperatura como el que se desarrolla en este POST. Como dato deciros que internamente está formada por múltiples celdas de materiales N y P ubicadas entre sus dos caras cerámicas. Habitualmente se emplea Telurio y Bismuto como semiconductores y óxido de aluminio para las placas cerámicas, aunque no voy a entrar a analizar su comportamiento termodinámico en profundidad el día de hoy.

Funcionamiento de la célula Peltier

Esta célula Peltier, para su correcto funcionamiento debe ser alimentada mediante una fuente de 12VDC y 8,5A (100W), puesto que tiene que generar la suficiente potencia para alimentar los 60W aproximados que consume la célula, además de poder alimentar el ventilador del disipador que también trabaja a 12V. Dado que la célula consume una cantidad considerable de corriente hay que tener en cuenta que la fuente de alimentación  tenga la corriente suficiente, si no, no va a funcionar la célula con su máxima eficiencia. Como Arduino únicamente nos suministra salidas de 5VDC y unos pocos miliamperios, tendremos que utilizar un módulo relé de 5VDC junto con Arduino para poder controlar la potencia de la fuente de alimentación y de esta manera controlar el comportamiento de la célula Peltier (ON/OFF).

Célula Peltier con disipador, ventilador y sonda de temperatura

El problema nos surge ahora, es decir, para hacer funcionar una célula Peltier debemos dar salida al calor generado en la cara caliente, para lo cual deberemos de instalar un sistema de disipación. Cómo mínimo, debemos ubicar un disipador con ventilador en el lado caliente (el lado de la serigrafía TEC1-12706, es el lado frío). No hagáis funcionar una célula Peltier sin un sistema de disipación, puesto que elevará su temperatura rápidamente y se fundirá en pocos segundos, además las temperaturas alcanzadas son suficientemente altas para ser peligrosas al contacto. Para que exista una transferencia de calor correcta entre la célula y el disipador, es muy conveniente utilizar pasta térmica entre ambos componentes. Las caras de la celda están fabricadas en un material cerámico especial, que es un buen aislante eléctrico y buen conductor del calor, pero que es relativamente frágil mecánicamente, por lo que no debe ser sometido a golpes ni grandes esfuerzos. A continuación se destacan algunas de las características más relevantes de esta célula Peltier.

Características célula Peltier TEC1-12706

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, por eso he optado por instalar el sensor de temperatura DS18B20 puesto que resiste eficientemente la humedad y la corrosión. El sensor de temperatura DS18B20 es un dispositivo que se comunica de forma digital con nuestro ARDUINO. Cuenta con tres terminales, los dos de alimentación y el pin “DATA”.  Con Arduino podemos “leer” la temperatura que registra este sensor mediante la comunicación OneWire, que básicamente se trata de un protocolo especial que permite enviar y recibir datos utilizando un solo cable. Para una conexión correcta de este sensor, debemos de unir sus pines VCC y GND (negro y rojo) y conectar el pin DATA mediante una resistencia de 4,7KΩ a +5VDC de ARDUINO (resistencia PULL-UP), y a su vez este pin DATA debe de ir conectado al pin digital de ARDUINO por el que leemos la temperatura, que en nuestro caso es el pin digital 6 (“PIN_sensor”), para procesar los datos posteriormente mediante programación.

Sensor de temperatura DS18B20

Es importante revisar exhaustivamente las conexiones para que el sensor pueda realizar una lectura de la temperatura de manera correcta. El código requiere de la utilización de dos librerías (DallasTemperature.h y OneWire.h), que deben ser descargadas e instaladas dentro del IDE antes de cargar el código a nuestro ARDUINO. A continuación os muestro las principales características de este sensor de temperatura.

Características sensor de temperatura DS18B20

El display LCD 2004 de 4 filas y 20 caracteres por fila, además de alimentarlo correctamente (+5V y GND de Arduino) lo conectamos a nuestro Arduino mediante protocolo I²C (pines SDA y SCL), para poder visualizar el estado del sistema en todo momento (temperatura y  modos de funcionamiento). Los dos pulsadores se han de conectar a través de una resistencia de 10KΩ a GND de Arduino (resistencia PULL-DOWN), y a su vez un pulsador lo conectaremos al pin digital 8 (“Pulsador_Peltier”) de ARDUINO para el modo normal de funcionamiento ON/OFF de la célula Peltier y el otro pulsador al pin digital 7 (“Pulsador_PID”) para el modo de funcionamiento PID, donde la célula trabaja automáticamente entre un rango de temperaturas. Por último decir que el pin de control del módulo relé de 5VDC debe de ir conectado al pin digital 9 (“RELE”) de nuestro ARDUINO. Para una mayor información os recomiendo consultar el esquema de conexión y los comentarios realizados dentro del programa, que debemos de subir a nuestro ARDUINO para el correcto funcionamiento del sistema.



Lista de Materiales:


·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         Módulo LCM 2004 I2C V1.

·         Display 20x4 LCD 2004.

·         Célula Peltier cerámica TEC1-12706 (12VDC – 60W).

·         Fuente de alimentación de 12VDC – 8,5A (modelo CD-100W).

·         Disipador de CPU con ventilador de 12VDC.

·         Pasta térmica (HY410).

·         Sensor de temperatura DS18B20 (sumergible).

·         Módulo relé de 5VDC (SRD-05VDC-SL-C).

·         2 Pulsadores.

·         2 Resistencias de 10KΩ.

·         1 Resistencia de 4,7KΩ.

·         Protoboard.

·         Cables de conexión.




Código del programa:





Video:

viernes, 15 de abril de 2016

Caudalímetro con sensor de flujo YF-S201 y LCD 2004


En el POST de hoy os voy a enseñar cómo medir el caudal de agua en L/hora que atraviesa la alcachofa de nuestra ducha, así como la cantidad de agua que gastamos cada vez que nos duchamos, para ello, vamos a montar y programar un sencillo caudalímetro basado en el sensor de flujo YF-S201, un display LCD 2004 para poder visualizar los valores a tiempo real y una serie de elementos auxiliares necesarios para que le llegue el caudal de agua a nuestro sensor.


Sensor de flujo YF-S201

El sensor de flujo YF-S201 está constituido por una carcasa de plástico, un rotor de agua y un sensor de efecto Hall. El funcionamiento de este sensor es muy simple, es decir, en el rotor tiene un pequeño imán adherido para poder registrar una vuelta cada vez que pasa por el sensor magnético de efecto Hall que hay en el otro lado del tubo, generándose pulsos de salida a una velocidad proporcional a la del flujo. En la parte posterior del sensor hay una flecha para indicar la dirección del flujo. Cada pulso en la salida del sensor equivale aproximadamente a 2,25 mililitros. Una de las cosas a tener en cuenta es que no es un sensor de precisión, por lo que la frecuencia del pulso varía un poco dependiendo de la velocidad de flujo, la presión del fluido y la orientación del sensor,  necesitándose una cuidadosa calibración si se requiere más que un 10% de precisión. A continuación os muestro algunas de las características más relevantes de este sensor.

Tabla de características del sensor de flujo YF-S201

La salida del sensor (cable amarillo) la vamos a conectar a nuestro Arduino para que mediante una correcta programación podamos visualizar a través del LCD 2004 el caudal que sale por nuestra ducha en L/hora, además del consumo de agua en litros que hemos realizado en un determinado espacio de tiempo, por ejemplo, mientras nos duchamos (el cable rojo a +5V y el negro a GND de nuestro Arduino). Como la señal del pulso de salida es una simple onda cuadrada es muy fácil de registrar mediante interrupciones, para posteriormente convertir los pulsos en caudal. Según la hoja de datos del fabricante, por cada litro de agua que pasa por el sensor obtenemos aproximadamente 450 pulsos, entonces:


Esto quiere decir que si tenemos la frecuencia (pulsos por segundo), simplemente lo tenemos que dividir entre 7.5 para obtener el número de L/min. Para el caudal en L/hora tenemos que multiplicar la frecuencia por 60 minutos que tiene una hora.

  

La instalación del sensor a nuestra ducha es muy sencilla, lo primero que tenemos que hacer es dejar libre de conexiones el grifo de la ducha, para enroscar allí un extremo de la manguera con conexiones hembra de ½”, conectando el extremo libre de la manguera a la entrada del sensor. Por último en la salida del sensor conectaremos la manguera con la alcachofa que habíamos retirado anteriormente del grifo de la ducha. El sensor en ambos extremos tiene roscas macho estándar de ½”, lo que nos facilita la conexión. También es muy recomendable aplicar teflón en cada uno de los extremos del sensor para evitar posibles fugas de agua.


Caudalímetro con Arduino UNO


Lista de Materiales:


·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         Sensor de flujo YF-S201.

·         Manguera con conectores hembra de ½”.

·         Alcachofa de ducha con manguera y conector hembra de ½”.

·         Módulo LCM 2004 I2C V1.

·         Display 20x4 LCD 2004.

·         Teflón.

·         Batería de 12VDC/3000mAh (DC12300).

·         Protoboard.

·         Cables de conexión.



Código del programa:



Video:

martes, 12 de abril de 2016

Reloj en tiempo real Tiny RTC I²C con LCD 2004


El Tiny RTC I²C, es uno de los diferentes relojes en tiempo real con comunicación I²C que nos podemos encontrar en el mercado actual. Está compuesto por un RTC DS1307, una memoria EEPROM 24C32N y una batería CR2032 de 3V, gracias a ello es capaz de almacenar los datos y de seguir en funcionamiento aunque lo desconectemos de la alimentación de nuestro Arduino, y por lo tanto, cuando volvamos a conectarlo, mantendrá intacta tanto la hora como la fecha que le hayamos introducido mediante programación, aunque siempre que estemos trabajando con él es muy recomendable mantenerlo correctamente alimentado.

Tiny RTC I²C

Los valores tanto de hora como de fecha, les vamos a poder visualizar a través de un display LCD 2004, que no es más que un simple LCD que cuenta con cuatro líneas en las que se pueden mostrar hasta 20 caracteres en cada una de ellas. Tanto el LCD 2004 como el RTC van a compartir los pines SCL y SDA  para conectarse con nuestro Arduino mediante comunicación I²C, aunque podríamos incluir en nuestros proyectos hasta 128 dispositivos gracias a este protocolo de comunicación, siempre y cuando respetemos la dirección que tenga asignado cada uno de ellos. 

Otra cosa muy importante a recordar es que dentro de la programación, exactamente en la línea “LiquidCrystal_I2C lcd(0x20, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);”, donde pone 0x20, es justo la dirección que va a tener nuestro LCD 2004. Dicha dirección se obtiene midiendo el valor de los pines de dirección A0, A1 y A2, que están justo detrás del módulo LCM 2004 I2C V1 conectado al LCD 2004, con un potenciómetro, que en mi caso están todos conectados a GND (A0=0, A1=0 y A2=0) como se puede apreciar en la siguiente imagen.

Configuración de los pines A0, A1 y A2 (direcciones) en el LCD 2004

El programa simplemente cargará automáticamente la hora y la fecha que tengamos ajustada en nuestro PC al Tiny RTC I²C a través de la conexión serie USB de nuestro Arduino y gracias al uso de la librería "RTClib.h", una vez que comience la ejecución del programa, se mostrará los valores a través del LCD 2004. A parte de mostrarnos la hora y la fecha en tiempo real, este sistema nos permite poder crear diferentes alarmas y eventos en función del instante de tiempo que deseemos, siempre que se contemple dentro de la programación y tengamos correctamente conectado el hardware externo que necesitemos, por ejemplo, que a las 18:00:00h del día 14/04/2016 se encienda una bombilla a través de un Relé conectado a uno de los pines digitales de salida de los que nuestro Arduino dispone, para que posteriormente se apague a las 18:30:00h. Para más información debéis revisar el POST donde se explica detenidamente el manejo de los Relés.



Lista de Materiales:


·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         RTC DS1307.

·         Batería de 3V CR2032.

·         Módulo LCM 2004 I2C V1.

·         Display 20x4 LCD 2004.

·         Protoboard.

·         Cables de conexión.


Código del programa:



Video: