Interfaz RS232 PIC PC (Proyecto Completo VB6)

Por favor me podriais dar una foto para qué USB que utilizas?
El de arriba es el adaptador con el chip PL2303 y los dos de abajo usan el chip FT232RL
Dsc02121.jpg
También intenté su archivo hexadecimal relé pero no funciona en mi hardware real, nada está bien si funciona en simulación en Proteus.
Por eso te digo que el problema es de hardware, pueden ser conexiones, fuses y hasta problemas con el adaptador a RS-232
Podría por favor dibujar en proteus para su uso en la conexión de hardware real para el PIC16F628A esquemático como oscilador que utilice, por favor a volver a dibujar en mi esquema adjuntada.
Es el mismo que el del ejemplo del post #1 y funciona correctamente en montaje físico.
Olvidé en mi anterior post para subir en MikroC archivos, para que puedas encontrar en mis archivos adjuntos.
Ahora ya pude ver la palabra de configuración y aunque no es la correcta para un cristal/resonador de 4 MHz, debería funcionar.
Oscilador, ¿cuál es usted consulte para utilizar, así como cableado en proteus, que uso el oscilador interno o externo y ¿qué frecuencia de cristal si uso para cristal externo?
El oscilador interno es de 4 MHz, no apto para un baud rate superior a 4800, puede funcionar a 9600 pero ya con problemas.
Con un cristal de 4 MHz, va más o menos bien a 9600 Bps, pero es mejor usar una frecuencia superior.
Con 20 MHz he realizado muy buena comunicación hasta 128000 Bps.
Para el oscilador a cristal hasta 4 MHz, se usa el fuse XT, y superior a 4 MHz hasta 20 MHz, se usa el fuse HS (High Speed)

¿Sabía usted Oshonsoft?, ¿qué piensas de ese compilador, es igual con MicroStudio, lo compré hace una semana para PIC16F y PIC18F compilador.
Si lo conozco, de hecho conozco muchos compiladores, lo he usado y puedo decir que personalmente no me gusta.
Así como tampoco me gusta nada de mikroelectronica (Ni su compilador Basic, ni el de C "mikroC")
El compilador que más me gusta y en el cual desarrollo proyectos industriales, es BoostC Compiler de SourceBoost
Es muy parecido al compilador HI-TECH de Microchip, pero BoostC tiene mayor soporte y muchas ventajas superiores.
Para programar microcontroladores en Basic, lo mejor es Proton IDE

PD:
Subir la conexión como diagrama por bloques, no es conveniente porque no podemos ver la conexión real entre componentes.
Bloques.jpg
Mostrar este tipo de diagramas no sirve de mucho.
Por favor, adjunta un esquema verdadero punto a punto y no ese tipo de diagramas por bloques.
 
Hola D@rkbytes. Hoy mi convertidor USB llegó, lo probé con su interfaz en VB6 y mi nueva junta hacer con oscillador externo de cristal 12 Mhz, pero no trabajó. Imagen aquí sobre la conexión. Mi nuevo convertidor USB es rojo un FT232RL (derecha) similar como bien usted convertidor de USB.

Test.png

Test1.png

La conexión son PC con interfaz VB6-> USB FT232RL TX-RX-tierra-> microcontrolador Board TX-RX-tierra.
TX a RX - RX a TX - tierra a tierra, no estoy dado un suministro de 5 voltios, convertidor del USB porque tiene la fuente de PC.

Gracias,
Kapoh.
 
Cuando se usa un adaptador de USB a TTL RS-232, ya no se debe usar ningún emulador de puertos.
Los puertos virtuales afectan a los físicos y deben ser desinstalados.
 
Hola D@rk,
Acabo de hacer un pequeño programa para revisar la función mi convertidor USB, encontrará archivos adjuntos.
Descripción para utilizar:
1). de pin TX dar un 4, 7 K Ohm o 1 K Ohm a Led (+) y el otro pin (-) a tierra.
2). de pin RX da un 4, 7 K Ohm o 1 K Ohm a Led (+) y el otro pin (-) a tierra.
3). conectar la toma de tierra Pin de convertidor de USB a cada Led.
He probado mi marca que nuevo convertidor USB con mi pequeño programa está funcionando muy bien.
Bueno D@rk observado, lo pruebo mañana su sugerencia.

Gracias,
Kapoh.
 

Adjuntos

  • Little Program.rar
    28.7 KB · Visitas: 23
Ahora la versión 2 de esta interfaz RS232 en VB6.

Mejoré, añadí algunos algoritmos y la compacté un poco mas, cambiando también el diseño.

Esta es la nueva apariencia de la interfaz.

attachment.php


Hola amigo D@rkbytes tengo un problema al momento de querer instalar tu programa de VB6 que lo posteaste en el año 2012 , cuando quiero ejecutar el programa me sale éste error por parte del archivo MSSCOM32.OCX . Quisiera saber dónde lo tengo que pegar , instalar o no se , quisiera que me orientes por favor porque quiero usar tu interfaz ya que me hace muy interesante , espero que me ayudes , gracias . Disculpa si te escribo por acá. Dejo el error que me aparece en imagen.

PARADARK.png
 
Registra el componente con REGSVR32.exe
El Activex MSCOMM32.ocx puede ir en la misma carpeta donde está el programa o en el directorio de sistema de Windows, según tu versión.
Se registra ejecutando CMD en modo administrador y proporcionando el nombre del archivo a registrar.
Se escribe lo siguiente en CMD: regsvr32.exe mscomm32.ocx

Después de eso debe aparecer un mensaje indicando si el suceso fue exitoso o si ocurrió algún problema.
Por Internet puedes encontrar más información sobre registrar componentes Activex.

Nota:
Si el componente se encuentra en algún directorio del sistema, como c:windows\system32 o c:windows\syswow64
REGSVR32.exe podrá registrarlo sin proporcionar ruta de archivo, caso contrario, habrá que proporcionarle la ruta correcta de archivo.
También se puede copiar cmd.exe a la carpeta del Activex o desde el explorador ejecutarlo en dicha carpeta.
 
Registra el componente con REGSVR32.exe
El Activex MSCOMM32.ocx puede ir en la misma carpeta donde está el programa o en el directorio de sistema de Windows, según tu versión.
Se registra ejecutando CMD en modo administrador y proporcionando el nombre del archivo a registrar.
Se escribe lo siguiente en CMD: regsvr32.exe mscomm32.ocx

Después de eso debe aparecer un mensaje indicando si el suceso fue exitoso o si ocurrió algún problema.
Por Internet puedes encontrar más información sobre registrar componentes Activex.

Nota:
Si el componente se encuentra en algún directorio del sistema, como c:windows\system32 o c:windows\syswow64
REGSVR32.exe podrá registrarlo sin proporcionar ruta de archivo, caso contrario, habrá que proporcionarle la ruta correcta de archivo.
También se puede copiar cmd.exe a la carpeta del Activex o desde el explorador ejecutarlo en dicha carpeta.


Gracias por la orientación D@rkbytes , hice todo como me lo indicaste pero me salia un error de los componentes DLL no entendí porque y un error 0x8000201c algo asi , lo averigué por internet y me mandaban a formatear la PC . Pero si no fuera x el comentario que hiciste al subir la interfaz donde dices que esto solo es para aquellos q no posean VB6 , con esto decidí mejor instalar el VB6 y así logré poder abrir tu interfaz , debo de admitir que soy novato para usar el VB6 ,pero si tengo conocimientos en PBP y me da muchas ganas de seguir aprendiendo temas como la interfaz con VB , le echaré todas las ganas del mundo y gracias por tus grandes aportes D@rkbytes .Saludos desde Perú.
 
Ahora la versión 2 de esta interfaz RS232 en VB6.

Mejoré, añadí algunos algoritmos y la compacté un poco mas, cambiando también el diseño.

Esta es la nueva apariencia de la interfaz.

attachment.php


Escribí también algunos programas nuevos en PBP para experimentar con la interfaz.
Algunos de los programas los escribí con MicroCode Studio v5.0
Utilizando el nuevo compilador PICBASIC PRO v3.0
Pero nada impide compilarlos con PBP2 modificando la cabecera FSR, que incluí en cada programa.

Algunos de los nuevos ejemplos son...
.- Un Expansor de puertos para el PIC12F675 con el 74LS164
.- Envío de mensajes a un LCD 16x2 vía serial. (Lectura y escritura del LCD)
.- Un recuperador del valor del registro OSCCAL para el 12F675
.- Un calculador para el registro SPBRG en los PIC16
.- Un decodificador de estado de los pins en los PIC. (Interfaz incluida)
.- Termómetros usando el ADC del 12F675 y el 16F88 con el Sensor LM35. (Interfaz incluida)
Y algunos otros programas extra.

Como siempre, espero que estos aportes sean de ayuda,
para los que quieran experimentar con el casi extinto puerto serial de la PC.

Nota: Todos los ejemplos y proyectos incluyen el código fuente.
Más su respectivo diagrama esquemático y simulación en ISIS.

Cualquier duda y comentario quedo a sus ordenes.

Suerte y hasta luego.

Atte. D@rkbytes :)

Buena tarde D@rkbytes estoy por empezar un proyecto en Visual Basic.
Quiero empezar primero seleccionando el Puerto Comm, pero que lea los puertos comm que hay en la pc y estos se agreguen en la lista ComboBox.
Ahora quiero agregar un Led que encienda al momento de conectar, y que el CommandButton cambie de "Conectar" a "Desconectar". En caso haya error en la conexion o quizás no encuentre puertos en la pc me envie una ventana con mensaje de error.
En el TextBox que dice "01" (Le llamaremos txtproducto) solo se puedan digitar dos digitos , ahora no se, si se podria hacer que estos textos trabajen con un tipo de fuente de texto determinado, si se puede seria excelente, y si no se puede, ni modo.
en el TextBox que dice "00.00" (Le llamaremos txtprecio) solo trabajen 4 digitos y que el punto decimal aparezca por defecto, y que solo se puedan digitar los numeros.
1.jpg

Ahora lo que el programa quiero que realice es lo siguiente:
A travez de un Pic18f2550 se va acomunicar con el puerto serial, este a la vez tiene que recibir la siguiente trama de datos:
A1111B2222C3333D4444E5555F6666G7777 ==>> Esta trama la e probado con tu Serial Port Control y funciona normal. (Enviando y recibiendo los mismos datos de envio).

2.jpg

Ahora en el txtprecio (donde espero se pueda configurar solo 4 digitos y que el punto decimal sea por default) , aqui se va a a enviar el nuevo precio a cambiar y que aparcera en los displays.
En el txtproducto indistintamente del dato que se coloque va a enviar las letras: A,B,C,D,E,F,G. para tener un orden al momento de enviar toda la trama de datos.
Una vez que modifiquemos los txtprecio se van a enviar a travez del puerto comm que por default va a tener que estar configurado: "9600,n,8,1"

*Nota:
La función del checkbox será: al momento de estar activada va a poner en modo no editable el textproducto y el textprecio de su misma fila, pero va a modificar el precio que este en txtproducto por 00.00; que al momento de recibir este dato en el pic, va apagar los displays que corresponda de acuerdo a la letra del orden txtproducto (A,B,C,D,E,F,G).

Espero me respondas y me puedas apoyar
Gracias de antemano.
 
Todo lo que mencionas se puede hacer, lo que no se puede es hacerlo por ti.

Si te entiendo, y no te estaba diciendo que me hagan el programa jajajaja. Estuve averiguando y avance bastante.
Sin embargo quieron que me ayuden con un problema que tengo en visualbasic .
Agregue un Text1 y deseo que este tenga el punto decimal por defecto (ejemplo: "00.00") .
Ahora el Text1 esta configurado:
MaxLength = 5 ==>> porque son 4 numeros mas el punto decimal.

Asi esta configurado internamente. pero me esta dando problemas con el punto decimal, se que estoy haciendo algo mal, pero ya no doy mas.

Private Sub Txt1_KeyPress(KeyAscii As Integer)
Txt1.Text = Format(Val(Txt1.Text), "##.##")
End Sub

Al momento de digitar el Text1, aparece el punto decimal y no hace lo que necesito.
Gracias por responder.
 
Yo nada más usaría algo así:
Código:
Private Sub Text1_KeyPress(KeyAscii As Integer)
    ' Sólo se admitirán dígitos y el punto.
    If InStr("0123456789.", Chr(KeyAscii)) = 0 Then
        If KeyAscii <> 8 Then KeyAscii = 0
    End If
End Sub
 
Yo nada más usaría algo así:
Código:
Private Sub Text1_KeyPress(KeyAscii As Integer)
    ' Sólo se admitirán dígitos y el punto.
    If InStr("0123456789.", Chr(KeyAscii)) = 0 Then
        If KeyAscii <> 8 Then KeyAscii = 0
    End If
End Sub

Gracias por responder
Pero creo que no me explique bien.
El punto decimal yo no quiero digitarlo, yo quiero que aparezca por defecto y solo digitar los números. En caso se pudiera, si ya no se puede no habria de otra, que hacerlo como propones.
 
Es un Componente ActiveX, se puede colocar en cualquier parte, en la carpeta del proyecto, en System32, SysWOW64, etc.
El asunto es registrarlo, si lo cargas con VB el mismo entorno lo registra.
Si te complica, mejor subo el Control de Usuario, ese hasta contiene el código.
 

Adjuntos

  • CustomTextBox.rar
    690 bytes · Visitas: 14
Buena tarde D@rkbytes estoy por empezar un proyecto en Visual Basic.
Quiero empezar primero seleccionando el Puerto Comm, pero que lea los puertos comm que hay en la pc y estos se agreguen en la lista ComboBox.
Ahora quiero agregar un Led que encienda al momento de conectar, y que el CommandButton cambie de "Conectar" a "Desconectar". En caso haya error en la conexion o quizás no encuentre puertos en la pc me envie una ventana con mensaje de error.
En el TextBox que dice "01" (Le llamaremos txtproducto) solo se puedan digitar dos digitos , ahora no se, si se podria hacer que estos textos trabajen con un tipo de fuente de texto determinado, si se puede seria excelente, y si no se puede, ni modo.
en el TextBox que dice "00.00" (Le llamaremos txtprecio) solo trabajen 4 digitos y que el punto decimal aparezca por defecto, y que solo se puedan digitar los numeros.
Ver el archivo adjunto 188961

Ahora lo que el programa quiero que realice es lo siguiente:
A travez de un Pic18f2550 se va acomunicar con el puerto serial, este a la vez tiene que recibir la siguiente trama de datos:
A1111B2222C3333D4444E5555F6666G7777 ==>> Esta trama la e probado con tu Serial Port Control y funciona normal. (Enviando y recibiendo los mismos datos de envio).

Ver el archivo adjunto 188962

Ahora en el txtprecio (donde espero se pueda configurar solo 4 digitos y que el punto decimal sea por default) , aqui se va a a enviar el nuevo precio a cambiar y que aparcera en los displays.
En el txtproducto indistintamente del dato que se coloque va a enviar las letras: A,B,C,D,E,F,G. para tener un orden al momento de enviar toda la trama de datos.
Una vez que modifiquemos los txtprecio se van a enviar a travez del puerto comm que por default va a tener que estar configurado: "9600,n,8,1"

*Nota:
La función del checkbox será: al momento de estar activada va a poner en modo no editable el textproducto y el textprecio de su misma fila, pero va a modificar el precio que este en txtproducto por 00.00; que al momento de recibir este dato en el pic, va apagar los displays que corresponda de acuerdo a la letra del orden txtproducto (A,B,C,D,E,F,G).

Espero me respondas y me puedas apoyar
Gracias de antemano.

estimado D@rkbytes
buenas noches.

mira para enviar mensajes a travez del puerto comm uso etas lineas de comando:

Private Sub cmdEnvia_Click()
' Enviar mensaje al puerto serial
If VarConnect = False Then
txtRecibe.Text = "Recuerde establecer una conexión antes de envíar mensajes."
Exit Sub
End If

RS232.Output = Txt1.Text

If Txt1.Enabled = False Then
txtRecibe.SetFocus
Else
Txt1.SetFocus
End If

End Sub


sin embargo para recibir mensajes a travez del puerto comm, tengo estas lineas:

Private Sub Recibe()
szData = RS232.Input
RS232.InputMode = comInputModeText

txtRx.Text = txtRx.Text & szData
End Sub


se que estoy haciendo algo mal porque no me esta recibiendo datos por ningun lado.
Gracias por responder.
 
La recepción se ejecuta en el Sub OnComm() del control MSComm
Como son varios eventos los que se pueden ejecutar, se suele utilizar una selección con Select Case.
La constante del evento de recepción será: comEvReceive
MSCommLib.jpg
 
Atrás
Arriba