Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

25/01/2011 #1


Visual basic y puerto serie
Hola estudio electronica pero ahorita estoy con visual basic... y pues necesito algo mas simple, el "protocolo" lo hice mas por electronica asi que en programacion... mi pregunta es si es posible por ejemplo colocar algun pin (puerto serie) en 1 (10 segundos) y otro pin que me mande un tren de pulsos...



00011111111111110000
00010001000100010000

Si que alguien que sepa y tenga ingenio como colocar eso, y pues decirme si tbm es posible


00011111111111110000
00010001000100010000
00010101010101010000

Eso, la frecuencia me gustaria programarlo, no lo se, tal vez con un for, de encender 10 sec y apagarlo y nuevamente encender 20 algo asi.
25/01/2011 #2

Avatar de Unikfriend

Hola Strike...
yo utilizo las lineas Mscomm1.DTREnabled = true y Mscomm1.RTSEnabled = true,
y pues la frecuencia la contrar con Timer1.interval = x

Saludos
25/01/2011 #3


Disculpa la ignorancia recien aprendo esto de interfaces, la cosa, si yo colocase;

Private Sub Command1_Click()
Mscomm1.DTREnabled = true
End Sub
Private Sub Command2_Click()
Mscomm1.DTREnabled = false
End Sub

Funcionaria ? O ahy que agregar algo mas
26/01/2011 #4

Avatar de gzaloprgm

Lo más facil de hacer es usar un timer, que se ejecute cada digamos 1segundo...

En el tick del timer, podés hacer lo que quieras, setear el valor de DTREnabled al que quieras dependiendo del tiempo que haya pasado... Podés hacer una tabla y así dibujar el tren de pulsos que quieras...

Un saludo,
Gonzalo
26/01/2011 #5

Avatar de Unikfriend

Hola Strike!...
Sería algo así,

'global
Dim nBits As Integer
Dim cBits As Integer
Dim Dato As Integer

Sub Command1_Click ()
Timer1.Interval = 1000
Timer1.Enabled = True
Mscomm1.OpenPort = True
Mscomm1.DTREnabled = True
cBits = 1
nBits = Len(text1.Text)
End Sub

Sub Timer1_Timer ()
Dato = Val(Mid$(text1, cBits, 1))
If Dato = 1 Then
Mscomm1.RTSEnabled = True
Else
Mscomm1.RTSEnabled = False
End If
cBits = cBits + 1
If cBits > nBits Then
Timer1.Enabled = False
Mscomm1.DTREnabled = False
Mscomm1.OpenPort = False
End If
End Sub
26/01/2011 #6


Hmmm gracias por las respuestas, estube leyendo otro manuales, y mi cuñado dijo que lo intentara no mas, es decir

Private Sub Command1_Click()
Mscomm1.DTREnabled = true
End Sub
Private Sub Command2_Click()
Mscomm1.DTREnabled = false
End Sub

Que primero viera que sucedia con eso y luego me daba a los trenes de pulso y esos.
Pero siento que igual faltara algo... ?

Unikfriend, podrias explicar un poquito tu codigo o decirme si hago primero lo que me dijo mi cuñado
26/01/2011 #7

Avatar de gzaloprgm

Faltaría unicamente que elijas el puerto COM por el que quieres sacar los datos (era alguna propiedad del MSComm, no lo recuerdo ahora...

Un saludo,
Gonzalo
26/01/2011 #8

Avatar de Unikfriend

Hi, Strike...
el puerto serial lo seleccionas en las propiedades del MSComm1.CommPort

la idea es que la casilla de texto tu coloque el tren de pulsos que deseas transmitir,
segun te entendi un pulso por segundo durante 10 segundos.


Esta prueba ya la he realizado anteriormente y funciona bien, solo necesitas estar seguro
de tener la libreria correcta de la version de VB que este utilizando. puede ser
MSCOMM.VBX para VB3 o MSCOMM.OCX para VB4,VB5,VB6

Que version de VB utilizas?
Imágenes Adjuntas
Tipo de Archivo: jpg mscomm1.JPG (30,8 KB (Kilobytes), 19 visitas)
Tipo de Archivo: jpg mscomm2.JPG (7,7 KB (Kilobytes), 22 visitas)
26/01/2011 #9


Guau, ya has logrado mandarlo ???
Ehy tio gracias. Uso VB6 como coloco esa libreria ?
La pongo en la carpeta donde esta mi archivo ?
Muchas gracias igual
26/01/2011 #10

Avatar de Unikfriend

Hi Strike...
Primero que nada soy tia... no tio..

Ok en la barra de herramientas del VB, debe aparecer un icono de un telefono,
ese el control del MSCOMM. si no aparece tienes que agregar el componente haciendo
click con el boton derecho del mouse y buscar el achivo MSCOMM.OCX en el directorio de
winodws.
Si ya he realizado esta prueba pero fue con VB3,
actualmente uso el Visual C Express para este tipo de interfaces .
Y el problema con los proyectos de VB es que no son 100% transportables entre versiones.
se batalla mucho cuando cambias de version, practicamente tienes que hacer todo otra vez.
por que muchos controles no llaman igual.
Saludos.
26/01/2011 #11


Hola denuevo

Seguramente todo esto me ayudara, lo siguiente sera para personas que necesiten ayuda en esta parte:

Para colocar el archivo MSCOMM.OCX debemos ir al programa, en la pestaña proyecto -> componentes - Buscar el archivo o el titulo: "Microsoft Comm Control 6.0" si no lo esta debemos colocarnos nosotros, bueno; nos vamos al siguiente enlace:
http://www.nodevice.es/dll/MSCOMM32_OCX/item12152.html
Ahy mas abajo pide colocar el codigo y descargarlo. Una vez abierto el rar, copiar el archivo -> entrar a MI PC -> Al disco duro -> windows - system32 y pegarlo ahy.
Si el VB no lo actualiza, hacemos manualmente, colocamos ahy (En la ventana componente, de la pestaña proyecto) colocamos "Examinar" o "brow.." Y vamos a buscarlo donde lo dejamos, le damos en aplicar y nos saldra la imagen que deja ahy.
Imágenes Adjuntas
Tipo de Archivo: jpg Sin títuloo.jpg (30,5 KB (Kilobytes), 12 visitas)
26/01/2011 #12

Avatar de Unikfriend

Hi Strike, Ya lo hiciste?
26/01/2011 #13


Hola, bueno segui viendo y el tio arriba decia que debia ademas elegir el puerto
----
MSComm1.CommPort = 1 'Paso 1: elijo el puerto
MSComm1.Settings = "9600,N,8,1" 'Paso 2:
MSComm1.PortOpen = True
----
MSComm1.CommPort = 1 'Paso 1: elijo el puerto
Eso supongo que sera elegir el puerto... ?
.----
Sera necesario establecer eso? Si no necesito establecer comunicacion solo mandar señales binarias?
MSComm1.Settings = "9600,N,8,1" 'Paso 2:
----------
Private Sub Command1_Click()
Mscomm1.DTREnabled = true
End Sub
Private Sub Command2_Click()
Mscomm1.DTREnabled = false
End Sub

Me ayudan ahora como quedaria dejarlo en un on off?

Si unikfreind pro no que hago dentro de ese codigo ?
26/01/2011 #14

Avatar de Unikfriend

Hi Strike,

Si tienes que elegir el puerto las PC normalmente tiene dos com1 o com2,

el baud rate no importa por que tu no lo vas a conectar,
solo necesitas el pinout del puerto serial, para saber que lineas vas a monitorear...

Hi, Strike...
Si ya tienes en el formato el MSComm y los dos botones Command1 y Command2
con esto codigo deberia ser suficiente para que enciendas y apagues esas
dos lineas..
'----------------------
Sub Form_Load ()
MSComm1.OpenPort = True
End Sub
Sub Form_UnLoad ()
MSComm1.OpenPort = False
End Sub
Sub Command1_Click ()
MSComm1.DTREnabled = True
MSComm1.RTSEnabled = True
End Sub
Sub Command2_Click ()
MSComm1.DTREnabled = False
MSComm1.RTSEnabled = False
End Sub
'----------------------
Saludos.
Imágenes Adjuntas
Tipo de Archivo: jpg DB9.JPG (24,0 KB (Kilobytes), 17 visitas)
26/01/2011 #15


Ho mucha gracias, aveces me sucede que a toda gente que pido ayuda poca ayuda es mia, el tema es que nose si hago malas preguntas o no pero ahora gracias , lo probare.
28/01/2011 #16


Hola, me consegui un pc con puerto serie y hice el codigo, en la salida cuando voltaje saldria ? -12 creo k lei
28/01/2011 #17

Avatar de Unikfriend

Así es debes de ver que la señal cambie de 0 a -12V, cada vez que actives y desactives el DTR y RTS.

Saludos..
29/01/2011 #18


Hola, encontre esos datos... son asi no ?
Imágenes Adjuntas
Tipo de Archivo: jpg valoreselectricosrs232.jpg (45,8 KB (Kilobytes), 20 visitas)
Tipo de Archivo: jpg caracterisicasrs232.jpg (148,9 KB (Kilobytes), 11 visitas)
29/01/2011 #19

Avatar de gzaloprgm

Exactamente: Los "1" lógicos son de -12 volts aproximados, mientras que los "0" lógicos son de +12v

Lo mismo con las señales de control.

Un saludo,
Gonzalo
30/01/2011 #20

Avatar de Meta

Hay un manual que te puede ayudar del VB y puerto serie.

Ver manual.

Saludo.
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.