Informe de Avance 2 Proyecto Prototipo Alumnos: Marcelo Mella Urrutia David Moena Quijada Carlos Román Saavedra Sergio Sánchez Reyes Profesor: Yussef Farrán Fecha Entrega: 16 de Mayo de 2005 AVANCE La idea es controlar por medio del computador diferentes electrodomésticos, luces o cualquier dispositivo que funcione con 220 voltios. Como primer paso para lograr el objetivo, a modo de prueba, será controlar el prendido y apagado de leds por medio del computador, estableciendo la comunicación a través del puerto paralelo del mismo. El puerto paralelo se puede utilizar para controlar desde 8 hasta 32 dispositivos dependiendo del circuito utilizado. Introduciéndose de este modo en la Domótica usando el reloj del computador para controlar dispositivos eléctricos o a través de un programa escrito en cualquier lenguaje de programación que permita enviar datos al puerto paralelo del computador El prototipo a desarrollar utilizará los siguientes componentes: - Computador con puerto paralelo. Conector puerto paralelo. Chip. Leds. Resistencia 470 Ohms. Cables. Protoboard. Servidor Web Apache2 y PHP4. Programa escrito en C. ANALISIS DEL CIRCUITO. Este circuito conectará un modulo de control de potencia a un puerto paralelo del PC, se pueden conectar hasta cuatro módulos, dicho puerto no necesariamente debe ser bidireccional para controlar el sistema. Funcionamiento: El puerto paralelo esta formado de la siguiente forma: ____________________________________________________________ / \ 13 12 11 10 9 8 7 6 5 4 3 2 \ / / 1 \ \ 25 24 23 22 21 20 19 18 17 16 15 14 / \______________________________________________________/ Los pines 2 al 9 de cada integrado son las entradas de datos. Los pines 12 al 19 son las salidas. El pin 11 se denomina en inglés Latch Enanble, una entrada de control que causa que los pines 12 al 19 reflejen el dato presente en los pines 2 al 9. Esto quiere decir, a su vez, que los datos presentes en las salidas del integrado no sufren cambios por mas que los datos en la entrada del mismo cambien constantemente siempre y cuando la entrada de control (pin 11) este a tierra. El sistema a implementar es similar al de control de relés, pero como primer paso vamos a controlar leds en vez de reles. Este circuito es simple y permite manejar ocho relés con bobinas de 12V a partir de los pines de un puerto paralelo. Si miramos detalladamente se puede ver en el interior del chip (en este modelo el ULN2803) ocho esquemas como el de abajo, uno para cada uno de los canales. Como Controlarlo: El programa, que esta escrito en C que tiene la capacidad para controlar el puerto paralelo, lo primero en determinar debe ser el estado del puerto, y por ende, la placa de expansión, entonces el programa como primer paso debe inicializar el circuito. Cuando se quiera modificar la salida, se deberá poner en el puerto paralelo (en el bus de datos) el dato que se desea colocar en la salida. Un factor muy importante a tener en cuenta es que algunos de los pines de control del puerto paralelo presentan un estado lógico invertido con respecto a la tensión. Esto quiere decir que, un pin con estado lógico normal presenta tensión cuando el bit que lo controla esta a 1 y está a tierra cuando su bit se pone en cero. Pero, un pin con lógica inversa, presentará tensión cuando su bit este en cero y masa cuando este en uno. Hay que prestar atención a esto para evitar problemas de control con los integrados o activaciones erráticas. El programa, por ahora, controla el prendido y apagado de leds correctamente, estableciendo varias configuraciones a través de una pagina construida en PHP quien invoca el programa que esta corriendo bajo Linux y está escrito en C, recibiendo como entrada la configuración de leds que se desean prender. Esto se realiza de la siguiente manera: Obtener permisos para usar espacio de direcciones de I/O, llamando al kernel, con la llamada ioperm: ejemplo ioperm( BASE, rango ,1); Performar una instrucción “out request” , para setear el voltaje 0-5V al Puerto paralelo, ejemplo outb( 1, BASE ); Para apagar se ejecuta un outb( 0 , BASE );