Programación Específica > Programación de Aplicaciones para Dispositivos
Actuar Sobre Un Relé
ebolo:
Hola a tod@s.
Lo que quiero hacer es a través del pc poder actuar sobre un relé, abrir y cerrarlo con una instrucción.
De momento he aprendido a usar los puertos de serie para mandar instrucciones y recibir información mediante visual basic y un componente del mismo.
¿Qué necesito, cómo conecto el relé al puerto de serie para abrirlo y cerrarlo?.
Tengo entendido que al puerto de serie le llega una señal de 5 voltios a cada pin, ¿ésto es así?.
La idea es hacerme mi propia domótica y controlar todos los aparatos desde el pc.
Sin prisa pero aprendiendo siempre cosas.
Si alguién sabe del tema le estaré agradecido toda la información que me pueda dar.
Saludos.
PD.: He visto en un post anterior de actuar sobre puerto paralelo, ¿Qué sería mejor sobre puerto paralelo o serie?. ¿Es posible hacerlo también por USB.?
Muchas preguntas son.......
© Jonathan ©:
Hola, como mejor puerto se recomendaria el puerto paralelo, ya que las lineas de entrada/salida son mayores, si utilizas el puerto serie necesitarias una electronica para ampliar las salidas a las cuales conectaras el relay, si quieres utilizar 7 relay's deberias poner un microcontrolador o algo para poder definir a cual quieres activar y a cual no.
Eso se deja de lado si utilizas el puerto paralelo, ya que tu defines por que pin sacaras los 5 voltios... El puerto paralelo estándar sólo tiene 12 salidas digitales (8 del registro de estado y 4 del registro de control), pero las puedes ampliar y llevarlas a 32 salidas digitales utilizando una electronica exterior que constara de cuatro integrados 74LS244, aparte deberas realizar unas rutinas de programacion para el manejo de cada salida, yo solo puedo ayudarte con la misma sobre C, pero creo no es dificil su conversion a visual basic, con eso te bastara y sobrara para lo que deseas hacer.
Te adjunto la imagen de la electronica que debes realizar y a continuacion te escribo el algoritmo para el manejo de cada salida:
--- Código: Text ---El siguiente algoritmo permite colocar en 1 cualquiera de las 32salidas del circuito, sin modificar el resto. /* Definimos las variables */ Buffer es un arreglo[1..4] de tipo byte i de tipo entero dir_base,dir_control de tipo word procedimiento inicializar inicio obtener dir_base del puerto paralelo calcular: dir_control=dir_base+2 para i=1 hasta 4 hacer buffer[i]=0 fin función dos_a_la(i de tipo entero) retorna un dato de tipo byte definimos las variables: r,ctd de tipo entero inicio r=1 para ctd=1 hasta i hacer r=r*2 dos_a_la=r fin procedimiento enviar(dir_salida,dato de tipo byte) dir_salida puede estar entre 0 y 31 dato puede ser 0 o 1 inicio Si (dir_salida>=0) Y (dir_salida<=7) entonces inicio Si dato=1 entonces buffer[1]=buffer[1] Odos_a_la(dir_salida) sino buffer[1]=buffer[1] Y NO dos_a_la(dir_salida) /*activar el buffer 1*/ port[dir_control]=7 XOR 11 /* 7=0000 0111 recuerde que el74LS244 se activa con un valor bajo (bit en 0). utilizamos la operacion OR con 11 para invertir los bits del registro de control*/ /*enviar los datos*/ port[dir_base]=buffer[1] Fin Si (dir_salida>=8) Y (dir_salida<=15) entonces inicio Si dato=1 entonces buffer[2]=buffer[2] Odos_a_la(dir_salida-8) sino buffer[2]=buffer[2] Y NO dos_a_la(dir_salida-8) /*activar buffer 2*/ port[dir_control]=11 XOR 11 /* 11= 0000 1011*/ /*enviar los datos*/ port[dir_base]=buffer[2] Fin Si (dir_salida>=16) Y (dir_salida<=23) entonces inicio Si dato=1 entonces buffer[3]=buffer[3] Odos_a_la(dir_salida-8*2) Sino buffer[3]=buffer[3] Y NO dos_a_la(dir_salida-8*2) /*activar buffer 3*/ port[dir_control]=13 XOR 11 /* 13= 0000 1101*/ /*enviar los datos*/ port[dir_base]=buffer[3] Fin Si (dir_salida>=24) Y (dir_salida<=31) entonces inicio Si dato=1 entonces buffer[4]=buffer[4] Odos_a_la(dir_salida-8*3) sino buffer[4]=buffer[4] Y NO dos_a_la(dir_salida-8*3) /*activar buffer 4*/ port[dir_control]:=14 XOR 11 /*14=0000 1110*/ /*enviar los datos*/ port[dir_base]=buffer[4] Fin Fin /*Utilización*/ primero se debe llamar al procedimiento inicializar Luego llamar el procedimiento enviar Ejemplos: Si se quiere enviar un 1 a la salida 24 la llamada será: Enviar(24,1) Si se quiere enviar un 0 a la salida 14 la llamada será: Enviar(14,0) Si se quiere enviar un 1 a las salidas 3, 15 y 27 las llamadas serán: Enviar(3,1) Enviar(15,1) Enviar(27,1) Si se quieres enviar un 0 a las salidas 2, 24 y 16 y enviar un 1 a la salida 25, las llamadas serán: Enviar(2,0) Enviar(24,0) Enviar(16,0) Enviar(25,1) /* Fin */
Bueno, deberia copiar todo esto y pegarlo en un documento word e imprimirlo para que lo veas mejor, este programa debes realizar para el manejo del puerto sobre las 32 salidas
Espero te sea de utilidad y si no entiendes algo me avisas, te ayudare sin problemas. Saludos :hola:
PD: Te adjunto aqui la conexion y en otro mensaje el diagrama de pines del integrado.
© Jonathan ©:
Aqui el diagrama de pines...
ebolo:
Muchas gracias Jonathan.
Estoy empezando a ver un poco de luz!!. Pero tengo muchisimas dudas, soy un aficionadillo a esto. :unsure:
Entonces mejor puerto paralelo.
-Los 5 voltios que entra a los integrados vienen del pin que yo decida del puerto paralelo, entonces las salidas digitales del puerto paralelo (8 de registro de datos y 4 de control) es simplemente información que se manda a través de código, pero ¿por el mismo pin que le entra el voltaje?.
-De cada una de las 32 salidas que obtenemos al final se puede conectar a un relé y mandándole un 1 a una salida ¿se activa el relé que tuvieramos conectado ahí?.
-Si con las 8 salidas iniciales de momento tengo bastante para probar, no tengo integrados, ¿el código me sirve igual? pero sólo con las salidas S0 a S7.
De momento con esto ya tengo algo con lo que estudiar y probar.
:) :)
© Jonathan ©:
Hola, bueno, pasare a contestarte:
--- Código: Text ----Los 5 voltios que entra a los integrados vienen del pin que yo decida del puerto paralelo, entonces las salidas digitales del puerto paralelo (8 de registro de datos y 4 de control) es simplemente información que se manda a través de código, pero ¿por el mismo pin que le entra el voltaje?.
- Tu tienes 8 pines que puedes usar como entrada o salida, con codigos o programas como los hechos en C, tu puedes decidir que pin del puerto paralelo tendra un nivel alto (5v) o un nivel bajo (0V).
--- Código: Text ----De cada una de las 32 salidas que obtenemos al final se puede conectar a un relé y mandándole un 1 a una salida ¿se activa el relé que tuvieramos conectado ahí?.
- Para activar el reley que quieras debes hacer el programa que te di en el algoritmo, ahi decides cual sera el relay que se activara.
--- Código: Text ----Si con las 8 salidas iniciales de momento tengo bastante para probar, no tengo integrados, ¿el código me sirve igual? pero sólo con las salidas S0 a S7.
- Exacto!... sin integrados puedes hacerlo igual, de hecho, para que todo te sea mas facil te he buscado informacion de como debes hacerlo en Basic.
El enlace es el que sigue:
Manejo del puerto Paralelo en basic
Espero te sea de utilidad y que tambien te responda las preguntas que tengas. Saludos!!! :hola:
Navegación
[#] Página Siguiente
Ir a la versión completa