Controlar Entradas/Salidas por RS232 sin micro
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 10 de 17

Tema: Controlar Entradas/Salidas por RS232 sin micro

  1. #1
    Super Moderator Avatar de HJ.0X00
    Ubicación
    Tanti - Córdoba - Argentina
    Mensajes
    2,159
    Gracias
    1,904
    Agradecido 1,577 veces en 942 posts

    Controlar Entradas/Salidas por RS232 sin micro

    Esto no es un proyecto en sí, lo hice a solo fin de mostrar que uno puede controlar entradas y salidas a través de un puerto serie, o a través de un puerto USB, utilizando un converso comercial USB-RS232, sin necesidad de utilizar un microcontrolador.


    El puerto serie nos brinda tres entradas y dos salidas que pueden ser manejadas a voluntad por cualquier lenguaje en la PC.
    Estas entradas y salidas en realidad fueron pensadas para ser utilizadas en el control de flujo por hardware, pero están ahí y vamos a utilizarlas.

    Vamos ha tener en cuenta un conector RS232 DB9, que es un estándar en las Pc, aunque ahora ya prácticamente en desuso.


    Las entradas son:
    CD (Carrier Detect) pin 1
    DSR (Data Set Ready) pin 6
    CTS (Clear to Send) pin 8


    Y las salidas son:
    DTR (Data Terminal Ready) pin 4
    RTS (Request to Send) pin 7

    1º circuito: Circuito de prueba con 3 entradas y dos salidas


    El circuito de prueba es de lo mas sencillo, consta de 3 pulsadores, 2 LED, 5 resistencias, una batería de 9V y el conector DB9

    Pulsa en la imagen para verla en tamaño completo

Nombre: in_out_serial_plano.JPG
Visitas: 17
Tamaño: 40.6 KB
ID: 3904





    Este circuito lo podemos conectar directamente a un com de la PC o a un puerto USB a través de un conversor USB-RS232, como se vé en la imagen:


    Pulsa en la imagen para verla en tamaño completo

Nombre: in_out_serial_03.JPG
Visitas: 13
Tamaño: 90.3 KB
ID: 3905

    Dejo un par de fotos del programa de prueba ejecutándose en la PC.

    Pulsa en la imagen para verla en tamaño completo

Nombre: in_out_serial_01.JPG
Visitas: 11
Tamaño: 88.1 KB
ID: 3906

    Pulsa en la imagen para verla en tamaño completo

Nombre: in_out_serial_02.JPG
Visitas: 12
Tamaño: 76.3 KB
ID: 3907

    El código en VB6 (que es el lenguaje que manejo para PC) es el siguiente:

    Código:
    Option Explicit
    
    
    Private Sub Command2_Click()
        If MSComm1.RTSEnable = True Then
            MSComm1.RTSEnable = False
            Command2.Caption = "Prender LED2"
        Else
            MSComm1.RTSEnable = True
            Command2.Caption = "Apagar LED2"
        End If
    End Sub
    
    
    Private Sub Command1_Click()
        If MSComm1.DTREnable = True Then
            MSComm1.DTREnable = False
            Command1.Caption = "Prender LED1"
        Else
            MSComm1.DTREnable = True
            Command1.Caption = "Apagar LED1"
        End If
    End Sub
    
    
    Sub leer_entradas()
        Do
            DoEvents
            If MSComm1.CTSHolding = False Then
                Shape1.FillColor = QBColor(2)
            Else
                Shape1.FillColor = QBColor(10)
               
            End If
            If MSComm1.DSRHolding = False Then
                Shape2.FillColor = QBColor(2)
            Else
                Shape2.FillColor = QBColor(10)
               
            End If
            If MSComm1.CDHolding = False Then
                Shape3.FillColor = QBColor(2)
            Else
                Shape3.FillColor = QBColor(10)
               
            End If
        Loop
    End Sub
    
    
    Private Sub Form_Activate()
        If App.PrevInstance = True Then
            MsgBox " El programa ya está corriendo ", vbCritical + vbSystemModal
            End
        End If
        Form1.Caption = "On/Off Serial"
        MSComm1.CommPort = 3
        MSComm1.Settings = "9600,N,8,1"
        MSComm1.PortOpen = True
        MSComm1.DTREnable = False
        MSComm1.RTSEnable = False
        Command1.Caption = "Prender LED1"
        Command2.Caption = "Prender LED2"
        Call leer_entradas
    End Sub
    
    
    
    
    Private Sub Form_Unload(Cancel As Integer)
        MSComm1.DTREnable = False
        MSComm1.RTSEnable = False
        MSComm1.PortOpen = False
        End
    End Sub
    El código está escrito para que trabaje en el COM3, porque allí tengo instalado mi conversor USB-RS232.
    Aquellos que deseen utilizar otro COM simplemente deben cambiar la línea:

    Código:
       MSComm1.CommPort = 3
    Y poner el número de puerto que deseen en lugar del "3".


    Como pueden observar es muy fácil controlar a través del puerto serie un par de led y leer tres entradas.
    A partir de aquí se pueden hacer muchas cosas, siempre teniendo cuidado de no sobrecargar el puerto.

    Adjunto el ejecutable para el puerto COM3
    Serial_in_out.rar

    Con esto finalizamos el primer circuito de prueba.

    Continuará...
    "Cuando llegue la inspiración, que me encuentre trabajando."
    ​PICASSO, Pablo

    Consulta el Indice de Montajes NeoTeo

    Esta etapa concluyó, ahora estoy Por aquí...

    No soy mas Moderador aunque figure como tal.

  2. Los siguientes 11 usuarios agradecieron a HJ.0X00 por este post:

    Alde (07/08/2012), byboRRe (07/08/2012), danelektro (08/08/2012), edwards2kx (25/03/2013), elgarbe (12/12/2012), faiste (07/08/2012), Guerra (07/08/2012), Mario (07/08/2012), PicTrance (07/08/2012), RDBrot (07/08/2012), Switchxxi (07/08/2012)

  3. #2
    Super Moderator Avatar de HJ.0X00
    Ubicación
    Tanti - Córdoba - Argentina
    Mensajes
    2,159
    Gracias
    1,904
    Agradecido 1,577 veces en 942 posts
    2º circuito: Circuito con 2 salidas y tres entradas habilitadas o no por una de las salidas


    Otra alternativa es resignar una de las dos salidas, para alimentar los pulsadores desde allí, y así poder eliminar la batería externa.


    el circuito modificado sería el siguiente:

    Pulsa en la imagen para verla en tamaño completo

Nombre: in_out_serial_04.JPG
Visitas: 13
Tamaño: 41.8 KB
ID: 3909

    Donde hemos eliminado la batería y alimentamos los pulsadores desde el pin 7 (RTS) a través de un diodo 1N4148.


    En este caso para que el circuito quede alimentado y las entradas funcionen, se debe prender el LED2 desde el programa en la PC. Lo que significa que tenemos control de cuando nuestro equipo está energizado o nó... y esto da para mucho.


    Pulsa en la imagen para verla en tamaño completo

Nombre: in_out_serial_05.JPG
Visitas: 11
Tamaño: 52.9 KB
ID: 3910

    El LED1 sigue siendo una salida del "equipo"


    Para hacer pruebas sobre esta versión del circuito se puede utilizar el mismo programa, pero con los significados anteriormente expuestos.
    Recuerden, el LED2 debe estar encendido para que las entradas funcionen.

    Quiero aclarar que se que esto es elemental, pero considero que puede ser un punto de partida para quien desee comenzar a controlar cosas con la PC.
    La forma mas rápida, y creo que con la que todos comenzamos, es el puerto paralelo, ya casi inexistente en las computadoras modernas.
    Ese es el motivo del presente montaje, que permite jugar un poco controlando cosas vía USB a partir de un conversor USB-RS232.




    Les dejo un vídeo del segundo circuito funcionando (el que NO requiere batería).
    Disculpen la calidad del vídeo, fue filmado que una cámara que estaba en las últimas....





    Con esto finalizamos el segundo circuito de prueba.

    Continuará.
    Última edición por HJ.0X00; 07/08/2012 a las 04:09
    "Cuando llegue la inspiración, que me encuentre trabajando."
    ​PICASSO, Pablo

    Consulta el Indice de Montajes NeoTeo

    Esta etapa concluyó, ahora estoy Por aquí...

    No soy mas Moderador aunque figure como tal.

  4. Los siguientes 8 usuarios agradecieron a HJ.0X00 por este post:

    Alde (07/08/2012), edwards2kx (25/03/2013), elgarbe (12/12/2012), Guerra (07/08/2012), Mario (07/08/2012), PicTrance (07/08/2012), RDBrot (07/08/2012), Switchxxi (07/08/2012)

  5. #3
    Super Moderator Avatar de HJ.0X00
    Ubicación
    Tanti - Córdoba - Argentina
    Mensajes
    2,159
    Gracias
    1,904
    Agradecido 1,577 veces en 942 posts
    3º circuito: Control de un pequeño motor mediante


    La intención de este circuito de prueba es poder controlar vía RS232, o con un adaptador USB-RS232, un pequeño motor de un reproductor de CD.
    Se seleccionó este motor ya que era el que presentaba la menor corriente de arranque, 55mA.

    Deben prestar atención a no utilizar un motor que tenga una corriente de arranque superior a la que es capaz de entregar el puerto, ya que lo pueden dañar.


    El circuito utilizado es el siguiente:

    Pulsa en la imagen para verla en tamaño completo

Nombre: in_out_serial_06.jpg
Visitas: 9
Tamaño: 38.3 KB
ID: 3911
    Como se puede ver en el circuito utilizamos las dos salidas disponibles en el conector para poder alimentar el pequeño motor.

    En esta foto se puede apreciar el montaje en un protoboard.

    Pulsa en la imagen para verla en tamaño completo

Nombre: in_out_serial_09.jpg
Visitas: 8
Tamaño: 48.1 KB
ID: 3912

    El programa de la Pc cambió con respecto a los anteriores, como se vé en las siguientes capturas de pantalla.

    Nombre:  in_out_serial_07.jpg
Visitas: 505
Tamaño: 7.5 KB

    Nombre:  in_out_serial_08.jpg
Visitas: 506
Tamaño: 7.9 KB

    La interfaz cuenta ahora con un solo botón que nos permite prender y apagar el motor, activando y desactivando las lineas DTR y RTS.
    El código en VB6 es el siguiente, solo deben colocar en el formulario un botón y el MSComm.

    Código:
    Option Explicit
    
    
    
    Private Sub Command1_Click()
        If MSComm1.DTREnable = True Then
            MSComm1.DTREnable = False
            MSComm1.RTSEnable = False
            Command1.Caption = "Prender Motor"
        Else
            MSComm1.DTREnable = True
            MSComm1.RTSEnable = True
            Command1.Caption = "Apagar Motor"
        End If
    End Sub
    
    
    
    
    Private Sub Form_Activate()
        If App.PrevInstance = True Then
            MsgBox " El programa ya está corriendo ", vbCritical + vbSystemModal
            End
        End If
        Form1.Caption = "On/Off Motor"
        MSComm1.CommPort = 3
        MSComm1.Settings = "9600,N,8,1"
        MSComm1.PortOpen = True
        MSComm1.DTREnable = False
        MSComm1.RTSEnable = False
        Command1.Caption = "Prender motor"
    End Sub
    
    
    
    
    Private Sub Form_Unload(Cancel As Integer)
        MSComm1.DTREnable = False
        MSComm1.RTSEnable = False
        MSComm1.PortOpen = False
        End
    End Sub
    Al igual que en los casos anteriores, el programa está preparado para trabajar sobre el COM 3, ya que mi adaptador está configurado allí.
    Como mencioné anteriormente, aquellos que deseen utilizar otro COM simplemente deben cambiar la línea:

    Código:
     MSComm1.CommPort = 3
    Y poner el número de puerto que deseen en lugar del "3".


    En el siguiente vídeo, podemos ver el circuito en funcionamiento. (vuelvo a pedir disculpas nuevamente por la calidad del mismo)



    Adjunto el ejecutable para el puerto COM3
    On-off_motor.rar

    Con esto terminamos esta serie de circuitos de prueba de utilización de las Entradas y salidas del puerto RS232 sin utilizar un micro.

    Saludos
    HJ
    Última edición por HJ.0X00; 07/08/2012 a las 04:25
    "Cuando llegue la inspiración, que me encuentre trabajando."
    ​PICASSO, Pablo

    Consulta el Indice de Montajes NeoTeo

    Esta etapa concluyó, ahora estoy Por aquí...

    No soy mas Moderador aunque figure como tal.

  6. Los siguientes 7 usuarios agradecieron a HJ.0X00 por este post:

    Alde (07/08/2012), elgarbe (12/12/2012), Guerra (07/08/2012), hoscontrol (11/12/2012), PicTrance (07/08/2012), RDBrot (07/08/2012), Switchxxi (07/08/2012)

  7. #4
    Usuario Avatar de Switchxxi
    Ubicación
    Bs. As. Argentina.
    Mensajes
    222
    Gracias
    84
    Agradecido 188 veces en 91 posts
    Excelente info HJ. Lastima que el Rs232 tendera a desaparecer mas teniendo en cuenta que cada vez hay mas micros con puertos USB integrados con decenas de librerias y drivers facilitando mucho las cosas. Pero nadie puede negar que es un veterano que aun esta en forma XD.
    Sin ir muy lejos el archiconocido programador JDM trabaja por medio de este conector incluso tomando prestada la tension de alimentacion del puerto. Nada que envidiarle al USB jaja.

    Saludos.

  8. Los siguientes usuarios agradecen a Switchxxi por este post:

    HJ.0X00 (07/08/2012)

  9. #5
    Usuario
    Mensajes
    177
    Gracias
    939
    Agradecido 116 veces en 86 posts
    Otra vez amigo HJ, muy muy Interesante y Completa la Demostración. Tengo una cable USB-RS232 y Definitivamente voy a hacer esos laboratorios. Muchas Gracias.
    Saludos.

  10. Los siguientes usuarios agradecen a Guerra por este post:

    HJ.0X00 (07/08/2012)

  11. #6
    Usuario Avatar de RDBrot
    Mensajes
    837
    Gracias
    950
    Agradecido 994 veces en 513 posts
    Hay muchos fabricantes de sistemas de control que por no variar su arquitectura y su software siguen vendiendo sus paneles con RS232. Por otro lado, si nos fijamos en las mainboards de las PCs, Si bien observamos que ya desapareció el puerto paralelo, sin embargo se mantiene el serial. Yo creo que todavía tiene para un tiempo mas y esta información que nos brinda HJ es muy útil.

    Ya está almacenada en mi libreta de apuntes, gracias HJ.

    Saludos
    “Aunque me digan infiel, prefiero convivir con las dos. La Verdad y La Razón.”

  12. Los siguientes usuarios agradecen a RDBrot por este post:

    HJ.0X00 (07/08/2012)

  13. #7
    Usuario
    Mensajes
    1
    Gracias
    1
    Agradecido 0 veces en 0 posts
    Buenos dias, podriamos tener cuatro salidas digital y una entrada.

  14. #8
    Super Moderator Avatar de HJ.0X00
    Ubicación
    Tanti - Córdoba - Argentina
    Mensajes
    2,159
    Gracias
    1,904
    Agradecido 1,577 veces en 942 posts
    Cita Iniciado por hoscontrol Ver mensaje
    Buenos dias, podriamos tener cuatro salidas digital y una entrada.
    Adjunto aquí tu mensaje privado y mi respuesta:


    Re: placa entradas salidas RS232



    Iniciado por hoscontrol
    Buenos dias, me parece interesante el articulo, me gustaria crear una placa con 4 salidas y una entrada, seria posible.
    si es asi te agradeceria me informaras como.
    Gracias de antemano.



    Mediante el puerto serie, sin agregar nada mas, solo puedes tener lo mencionado en el artículo, es decir 3 entradas y 2 salidas.
    Para ampliar esas características deberías agregar alguna circuitería, lo mas sencillo sería un microcontrolador programado adecuadamente.

    Saludos
    HJ
    "Cuando llegue la inspiración, que me encuentre trabajando."
    ​PICASSO, Pablo

    Consulta el Indice de Montajes NeoTeo

    Esta etapa concluyó, ahora estoy Por aquí...

    No soy mas Moderador aunque figure como tal.

  15. Los siguientes 2 usuarios agradecieron a HJ.0X00 por este post:

    Guerra (12/12/2012), RDBrot (12/12/2012)

  16. #9
    Usuario
    Ubicación
    Villa Ramallo - Argentina
    Mensajes
    177
    Gracias
    12
    Agradecido 118 veces en 57 posts
    Muy didáctico HJ y por supuesto, útil. Si bien el puerto serie puede llegar a desaparecer, es una forma muy simple de usar el USB, ya que como él explica podemos usar la técnica con el cable conversor usb-232... Totalmente de acuerdo que los que comenzamos hace años con querer controlar cosas con la PC lo hicimos con el LPT. Ahora con estos ejemplos y un cable USB-232 podemos controlar cosas desde una simple notebook sin puerto serie/paralelo.

    Muchas gracias!

  17. Los siguientes usuarios agradecen a elgarbe por este post:

    HJ.0X00 (12/12/2012)

  18. #10
    Super Moderator Avatar de HJ.0X00
    Ubicación
    Tanti - Córdoba - Argentina
    Mensajes
    2,159
    Gracias
    1,904
    Agradecido 1,577 veces en 942 posts
    Cita Iniciado por hoscontrol Ver mensaje
    Buenos dias, podriamos tener cuatro salidas digital y una entrada.
    Mediante el puerto serie, sin agregar nada mas, solo puedes tener lo mencionado en el artículo, es decir 3 entradas y 2 salidas.
    Para ampliar esas características deberías agregar alguna circuitería, lo mas sencillo sería un microcontrolador programado adecuadamente.
    Algo mas simple que un microcontrolador sería el uso de un registro de desplazamiento, como el 74HC164, lo que te permitiría tener hasta 8 salidas, el programa sería un poco mas complicado pero es algo a probar.

    Saludos
    HJ
    "Cuando llegue la inspiración, que me encuentre trabajando."
    ​PICASSO, Pablo

    Consulta el Indice de Montajes NeoTeo

    Esta etapa concluyó, ahora estoy Por aquí...

    No soy mas Moderador aunque figure como tal.

Página 1 de 2 12 ÚltimoÚltimo

Temas similares

  1. Preamplificador micro electret
    Por davidbcn72 en el foro Electrónica
    Respuestas: 15
    Último mensaje: 19/01/2013, 18:59
  2. Protocolo RS232
    Por Switchxxi en el foro Electrónica Digital
    Respuestas: 4
    Último mensaje: 07/08/2012, 03:16
  3. Respuestas: 8
    Último mensaje: 22/06/2012, 14:14
  4. Acceso a Entradas Antiguas de NeoTeo
    Por zitonguito en el foro Consultas
    Respuestas: 1
    Último mensaje: 25/04/2011, 15:17
  5. [C18] RS232 y LCD16x2
    Por Yesbond en el foro Electrónica Digital
    Respuestas: 2
    Último mensaje: 30/12/2010, 02:24

Los visitantes encuentran esta página buscando por:

rs232

mi pc no tiene salida rs232

http://www.neoteo.com/foro/f29/controlar-entradas-salidas-rs232-micro-3342/

codiggo para cumunicar un microcontrolador con pc por rs232

cable rs 232 dos salidas

entradas y salidas por rs232

COMO CONTROLAR UN PUERTO 232

como controlar un motor con el puerto serie 232

control entrada salida con rs232

controlar entradas salidas por usb

proyecto micro rs232

puerto com db9 controlar entradas salidas

controlar entrada salida rs232 neoteo

rs232 entradas y salidas

entradas salidas rs232

entrada y salida rs232

rs 232 2 entradas 1 salida

programar salidas puerto 232 modificar rs232 a usbcontrolar eqipos porrs232cable rs232 hembra con salida usbpuertos rs232 desaparecerejemplos RS232 micro usbque se necesita para controlar un equipo por medio de rs-232como controlar las salidas del puerto usb

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37