• Jueves 18 de Abril de 2024, 20:23

Autor Tema:  Actuar Sobre Un Relé  (Leído 7139 veces)

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
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.......

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
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
  1. El siguiente algoritmo permite colocar en 1 cualquiera de las 32salidas del circuito, sin modificar el resto.
  2.  
  3.  
  4.  
  5.  
  6.  
  7. /* Definimos las variables */
  8.  
  9. Buffer es un arreglo[1..4] de tipo byte
  10.  
  11. i de tipo entero
  12.  
  13. dir_base,dir_control de tipo word
  14.  
  15. procedimiento inicializar
  16.  
  17. inicio
  18.  
  19. obtener dir_base del puerto paralelo
  20.  
  21. calcular: dir_control=dir_base+2
  22.  
  23. para i=1 hasta 4 hacer buffer[i]=0
  24.  
  25. fin
  26.  
  27. función dos_a_la(i de tipo entero) retorna un dato de tipo byte
  28.  
  29. definimos las variables:
  30.  
  31. r,ctd de tipo entero
  32.  
  33. inicio
  34.  
  35. r=1
  36.  
  37. para ctd=1 hasta i hacer r=r*2
  38.  
  39. dos_a_la=r
  40.  
  41. fin
  42.  
  43. procedimiento enviar(dir_salida,dato de tipo byte)
  44.  
  45. dir_salida puede estar entre 0 y 31
  46.  
  47. dato puede ser 0 o 1
  48.  
  49. inicio
  50.  
  51. Si (dir_salida>=0) Y (dir_salida<=7) entonces
  52.  
  53. inicio
  54.  
  55. Si dato=1 entonces buffer[1]=buffer[1] Odos_a_la(dir_salida)
  56.  
  57. sino buffer[1]=buffer[1] Y NO dos_a_la(dir_salida)
  58.  
  59. /*activar el buffer 1*/
  60.  
  61. port[dir_control]=7 XOR 11 /* 7=0000 0111 recuerde que el74LS244 se activa
  62.  
  63. con un valor bajo (bit en 0).
  64.  
  65. utilizamos la operacion OR con 11
  66.  
  67. para invertir los bits del registro
  68.  
  69. de control*/
  70.  
  71. /*enviar los datos*/
  72.  
  73. port[dir_base]=buffer[1]
  74.  
  75. Fin
  76.  
  77. Si (dir_salida>=8) Y (dir_salida<=15) entonces
  78.  
  79. inicio
  80.  
  81. Si dato=1 entonces buffer[2]=buffer[2] Odos_a_la(dir_salida-8)
  82.  
  83. sino buffer[2]=buffer[2] Y NO dos_a_la(dir_salida-8)
  84.  
  85. /*activar buffer 2*/
  86.  
  87. port[dir_control]=11 XOR 11 /* 11= 0000 1011*/
  88.  
  89. /*enviar los datos*/
  90.  
  91. port[dir_base]=buffer[2]
  92.  
  93. Fin
  94.  
  95. Si (dir_salida>=16) Y (dir_salida<=23) entonces
  96.  
  97. inicio
  98.  
  99. Si dato=1 entonces buffer[3]=buffer[3] Odos_a_la(dir_salida-8*2)
  100.  
  101. Sino buffer[3]=buffer[3] Y NO dos_a_la(dir_salida-8*2)
  102.  
  103. /*activar buffer 3*/
  104.  
  105. port[dir_control]=13 XOR 11 /* 13= 0000 1101*/
  106.  
  107. /*enviar los datos*/
  108.  
  109. port[dir_base]=buffer[3]
  110.  
  111. Fin
  112.  
  113. Si (dir_salida>=24) Y (dir_salida<=31) entonces
  114.  
  115. inicio
  116.  
  117. Si dato=1 entonces buffer[4]=buffer[4] Odos_a_la(dir_salida-8*3)
  118.  
  119. sino buffer[4]=buffer[4] Y NO dos_a_la(dir_salida-8*3)
  120.  
  121. /*activar buffer 4*/
  122.  
  123. port[dir_control]:=14 XOR 11 /*14=0000 1110*/
  124.  
  125. /*enviar los datos*/
  126.  
  127. port[dir_base]=buffer[4]
  128.  
  129. Fin
  130.  
  131. Fin
  132.  
  133. /*Utilización*/
  134.  
  135. primero se debe llamar al procedimiento inicializar
  136.  
  137. Luego llamar el procedimiento enviar
  138.  
  139. Ejemplos:
  140.  
  141. Si se quiere enviar un 1 a la salida 24 la llamada será:
  142.  
  143. Enviar(24,1)
  144.  
  145. Si se quiere enviar un 0 a la salida 14 la llamada será:
  146.  
  147. Enviar(14,0)
  148.  
  149. Si se quiere enviar un 1 a las salidas 3, 15 y 27 las llamadas serán:
  150.  
  151. Enviar(3,1)
  152.  
  153. Enviar(15,1)
  154.  
  155. Enviar(27,1)
  156.  
  157. 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:
  158.  
  159. Enviar(2,0)
  160.  
  161. Enviar(24,0)
  162.  
  163. Enviar(16,0)
  164.  
  165. Enviar(25,1)
  166.  
  167. /* Fin */
  168.  

   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.
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: ar
    • Ver Perfil
    • http://www.einstec.com.ar
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
    • Ver Perfil
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. :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 ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
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
  1. -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?.
  2.  

- 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
  1. -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í?.
  2.  
  3.  

- 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
  1. -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.
  2.  
  3.  

- 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:
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
    • Ver Perfil
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.
 :hola:  :hola:

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
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 :hola:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

javierv

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
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.