martes, 20 de noviembre de 2012

Reporte Final de Automatización:

 Presentación



Reporte Final

Descripción: 

Control de un ventilador para que se encienda y/o se apague ante determinados rangos de temperatura.

Diagrama de Conexiones:




Descripción de Partes:
  • Arduino UNO:
El Arduino uno sirve para poder controlar el ventilador en base a los valores recibidos desde el sensor. Lee desde un puerto analógico el valor del sensor LM35, y en base al valor recibido y  convertido a grados centígrados, determina si el ventilador permanece encendido o apagado, esto mediante una señal PWM de salida que se conecta con el transistor para realizar el encendido y apagado del ventilador.


  • LM35
Utilizado como sensor para determinar la temperatura de un objeto. El sensor arroja un valor entre 0 y 1023 para el arduino(normalmente es un voltaje analógico entre 0 y 3V), que debe convertir esto a una temperatura en grados Celsius, utilizando la fórmula.


Esta fórmula es así debido a que según el datasheet del LM35, es posible realizar una medición más precisa del LM35, ajustando el voltaje de referencia análogico a 1.1 (esto es posible hacerlo con el arduino agregando la línea analogReference(INTERNAL)). Entonces dividiendo el valor del sensor entre 9.31, nos da una temperatura un poco más precisa en grados centígrados.


  • Transistor de Darlington TIP-122
El transistor es usado para poder manipular corrientes de 12V mediante el Arduino, que normalmente solo puede manejar corrientes de 5V por debajo.

  • Ventilador
El ventilador es un simple ventilador de 12V. Puede ser encendido con menos voltaje(3.3V, 5V) pero el funcionamiento a máxima velocidad es dado con voltajes cercanos a los 12V. Aquí surge el problema que el Arduino no puede manipular directamente voltajes tan altos, al hacerlo se quemaría.

Por eso se utiliza un transistor de darlington para controlar el encendido y apagado del ventilador con 12V, separados de los 5V que utiliza el Arduino para funcionar.



  • Fuente de poder de 12V
Se utiliza una fuente de poder extraída de una PC para obtener los 12V necesarios para encender el ventilador a máxima velocidad. La fuente de poder en sí no funciona por sí misma conectada a corriente, es necesario realizar un puente entre el pin ps_on(verde), y tierra(cualquier negro). 


Con esta misma fuente de poder es posible utilizar 12V, 5V y 3.3V para cualquier cosa necesaria.

Funcionamiento:

El Arduino lee desde el pin del sensor un valor entre 0 y 1023. Dicho valor representa un voltaje, que a su vez representa una temperatura, basándonos en la siguiente ecuación:


Este voltaje es el que será representado en un valor entre 0 y 1023. Este valor necesitamos convertirlo a una temperatura, utilizando la fórmula mencionada anteriormente:


El valor del sensor es dividido entre 9.31, debido a que anteriormente en el Arduino estamos ajustando el voltaje de referencia análogo a 1.1, y dividiendo entre 9.31 podemos obtener una medición un poco más precisa.

Dependiendo del valor de la temperatura, el Arduino la comparará con un límite preestablecido. Sí el valor de la temperatura supera ese límite, el ventilador se enciende, buscando bajar la temperatura del objeto en contacto con el sensor. Cuando el valor de la temperature baje por debajo del límite, el ventilador se paga debido a que ha controlado la perturbación.

Para encender o apagar el Arduino, un valor entre 0 y 255 es utilizado (PWM). Este valor es dado de salida en el pin 9 del Arduino (PWM), y pasa como entrada al pin colector del transistor. Esto hara que el transistor utilice esa señal PWM como señal de encendido o apagado, para darle los 12V al ventilador de forma separada.




Código

Interfaz con la Computadora

El Arduino se conecta mediante puerto serial con la computadora, que a su vez corre un script en Python que se encarga de graficar en tiempo real los datos recibidos (la temperatura medida actual). Esto nos da una idea de las variaciones en la temperatura que se dan, y cuanto tiempo tarda en estabilizarse la temperatura a algo similar a temperatura ambiente por el enfriamiento del ventilador.

Usando un encendedor para incrementar rápidamente la temperatura del sensor, podemos simular un impulso que entra el sistema, donde la perturbación es el incremento de la temperatura por el encendedor.

El código usado para graficar en tiempo real:



Ejemplo de gráfica:



Otro pequeño script que dependiendo de la temperatura recibida por comunicación serial, llena una barra gráfica y la pinta dependiendo de la temperatura, utilizando pygame.



Ejemplo: 

Video:

Un pequeño vídeo grabado por el equipo, demostrando el funcionamiento del sistema cuando se incrementa la temperatura del sensor usando un encendedor.



Referencias:

2 comentarios:

  1. Me hubiera gustado alguna discusión del modelo matemático (función de transferencia) y una validación experimental de que la función de transferencia en realidad coincide con el comportamiento del sistema físico. Hay algunos minidetallitos de ortografía. Hubiera sido bueno graficar entrada y salida ambos. En LaTeX, cuando ponen texto en ecuaciones, usen \mbox{va un texto} para que se respeten los espacios. Van 13 pts por el reporte.

    ResponderEliminar
  2. disculpa a donde conectas los cables que dicen 12v y GND?

    ResponderEliminar