Miércoles 5 de Febrero de 2025, 13:00
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Específica
»
Programación de Aplicaciones para Dispositivos
(Moderador:
© Jonathan ©
) »
Actuar Sobre Un Relé
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Actuar Sobre Un Relé (Leído 7312 veces)
ebolo
Miembro MUY activo
Mensajes: 188
Actuar Sobre Un Relé
«
en:
Lunes 29 de Diciembre de 2003, 13:45 »
0
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.......
Tweet
© Jonathan ©
Moderador
Mensajes: 1671
Nacionalidad:
Re: Actuar Sobre Un Relé
«
Respuesta #1 en:
Lunes 29 de Diciembre de 2003, 14:14 »
0
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
PD: Te adjunto aqui la conexion y en otro mensaje el diagrama de pines del integrado.
El mensaje contiene
1 archivo adjunto
. Debes
ingresar
o
registrarte
para poder verlo y descargarlo.
EINSTEC Tecnología
«La única fuente del conocimiento es la experiencia.»
«Lo importante es no dejar de hacerse preguntas.»
© Jonathan ©
Moderador
Mensajes: 1671
Nacionalidad:
Re: Actuar Sobre Un Relé
«
Respuesta #2 en:
Lunes 29 de Diciembre de 2003, 14:16 »
0
Aqui el diagrama de pines...
El mensaje contiene
1 archivo adjunto
. Debes
ingresar
o
registrarte
para poder verlo y descargarlo.
EINSTEC Tecnología
«La única fuente del conocimiento es la experiencia.»
«Lo importante es no dejar de hacerse preguntas.»
ebolo
Miembro MUY activo
Mensajes: 188
Re: Actuar Sobre Un Relé
«
Respuesta #3 en:
Lunes 29 de Diciembre de 2003, 15:56 »
0
Muchas gracias Jonathan.
Estoy empezando a ver un poco de luz!!. Pero tengo muchisimas dudas, soy un aficionadillo a esto.
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 ©
Moderador
Mensajes: 1671
Nacionalidad:
Re: Actuar Sobre Un Relé
«
Respuesta #4 en:
Lunes 29 de Diciembre de 2003, 21:42 »
0
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!!!
EINSTEC Tecnología
«La única fuente del conocimiento es la experiencia.»
«Lo importante es no dejar de hacerse preguntas.»
ebolo
Miembro MUY activo
Mensajes: 188
Re: Actuar Sobre Un Relé
«
Respuesta #5 en:
Martes 30 de Diciembre de 2003, 08:09 »
0
Muchisimas gracias de nuevo Jonathan.
Ahora ya lo tengo claro y puedo empezar a trastear.
La página que me has puesto me aclara todas las dudas, de momento.
Saludos y que tengais un buen fin de año.
© Jonathan ©
Moderador
Mensajes: 1671
Nacionalidad:
Re: Actuar Sobre Un Relé
«
Respuesta #6 en:
Martes 6 de Enero de 2004, 13:22 »
0
Gracias igualmente para ti, si me permites modificare el titulo de la discucion para que sea entendida por otros usuarios. Saludos
EINSTEC Tecnología
«La única fuente del conocimiento es la experiencia.»
«Lo importante es no dejar de hacerse preguntas.»
javierv
Miembro activo
Mensajes: 25
Re: Actuar Sobre Un Relé
«
Respuesta #7 en:
Jueves 19 de Febrero de 2004, 10:18 »
0
Parece que tu duda ha sido resuelta, pero solo como informacion extra: si, es posible que lo hagas mediante usb pero para ello necesitas un micro para el usb.
Sobre la programación del puerto usb, la verdad no se si haya material disponible en la red, pero si tienes la oportunidad, puedes consultar un libro que se llama: "USB Complete: Everything You Need to Develop Custom USB Peripherals" el autor es Jan Axelson.
Por cierto el mismo autor tiene libros para el puerto serie y paralelo.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Específica
»
Programación de Aplicaciones para Dispositivos
(Moderador:
© Jonathan ©
) »
Actuar Sobre Un Relé