fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Enviar cadena de by...
 
Avisos
Vaciar todo

Enviar cadena de bytes al puerto serie vb2005

2 Respuestas
2 Usuarios
0 Reactions
1,627 Visitas
mntinside
Respuestas: 11
Topic starter
(@mntinside)
Active Member
Registrado: hace 17 años

Hola! Me estoy empezando a mudar a vb2005 y me a surgido un gran problema, y es que no se enviar datos por el puerto de serie. En vb6 era bastante sencillo usando el mscomm y hay muchos recursos por la web, pero para vb2005 no encuentro nada que me sirva. .

Vereis necesito enviar datos para este controlador ( http://www.superrobotica.com/download/s310175/S310175%20SUPER%20CONTROLADOR%20DE%20SERVOS.pdf en la pagina 6 pone el formato)

Mi codigo es este (esta en un formulario con un button simplemente):

Sub SendSerialData(ByVal cabecera As Byte, ByVal dirmodulo As Byte, ByVal dirServo As Byte, ByVal comando As Byte, ByVal data As Byte)

Using com1 As IO.Ports.SerialPort = My.Computer.Ports.OpenSerialPort("COM1")

com1.Write(cabecera)
com1.Write(dirmodulo)
com1.Write(dirServo)
com1.Write(comando)
com1.Write(data)

End Using

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

SendSerialData(62, 49, 50, 97, 1)

End Sub

Lo que ocurre es, precisamente, que no ocurre nada. En teoria, enviando la secuencia (62, 49, 50, 97, 1) me deberia de mover el servo 2 a la posicion 1, pero ni se inmuta. Se que el codigo esta mal, porque no soy ningun experto programador, asi que espero que alguien me pueda ayudar.

Gracias y un saludo!

Responder
1 respuesta
aprendiendo
Respuestas: 317
(@aprendiendo)
Reputable Member
Registrado: hace 17 años

mntinside, ¿ya configuras el puerto serie a "19200,N,8,1" (baudios, paridad, tamaño byte, bit parada)?

Al menos es lo que indica en la página 7 del manual que referencias

"2. ¿Cuáles son los valores predefinidos en fábrica?
La configuración de fábrica para la dirección de la placa es 1, la posición de inicio del servo es
127 (posición central) y la tasa de baudios es 19200,N,8,1."

En visual basic.net debe ser muy parecido a c#:

serialPort.PortName = "COM1";
serialPort.BaudRate = 19200;
serialPort.DataBits = 8;
serialPort.Parity = Parity.None;
serialPort.StopBits = StopBits.One;

serialPort.Open();

Responder
Compartir: