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

Temas similares

20/06/2014 #381

Avatar de Narcolepsia

Voy a hacer lo que me has dicho a ver si me va todo bien!
¿Puede influir que el CD de instalación que tengo sea la versión aprendizaje?
En otro sitio me han recomendado que descargue la ISO de la versión empresarial...
Iré probando. Ya comentaré cuando consiga solucionarlo.
Gracias!
20/06/2014 #382
Moderador

Avatar de D@rkbytes

Narcolepsia dijo: Ver Mensaje
¿Puede influir que el CD de instalación que tengo sea la versión aprendizaje?
No he usado esa versión, tengo la empresarial.
Tal vez en esa versión sea necesaria una licencia para el MSCOMM32.OCX, aunque se me hace raro que ese componente sea distribuido para su uso con licencia en una instalación de aprendizaje. (No se podría usar)

Espero que resuelvas tu problema.
18/10/2014 #383


Comunicación serial con Visual Basic 2008
Mi problema es el siguiente, estoy haciendo un proyecto para la universidad y es la primera vez que trabajo con comunicacion serial, bueno, lo primero que hice fue crear un FORM en visual basic en el cual, de manera anticipada, se seleccionan 8 datos enteros, despues de seleccionar los 8 numeros, paso a querer enviar solamente el primer dato
Código:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If Button1.Text = "CONECTAR" Then
            SerialPort1.PortName = ComboBox1.Text
            Button1.Text = "DESCONECTAR"
            Try
                SerialPort1.Open()
            Catch ex As Exception
                MessageBox.Show("Puerto no valido")
                Return
            End Try
            SerialPort1.DiscardOutBuffer()
            SerialPort1.Write(freca)
           
        ElseIf Button1.Text = "DESCONECTAR" Then
            Button1.Text = "CONECTAR"
            SerialPort1.Close()
        End If
    End Sub
como ven, el primer y unico dato que envio es FRECA y tiene un valor fijo que es 3, al enviar por el puerto serie a mi simulacion en proteus quiero recibir el dato y mostrarlo por el LCD (para asegurarme que el dato que recibo es el correcto) entonces hago lo siguiente
Código:
lcd_putc("\f variables");
   prr=variables();
   printf(lcd_putc,"\n %3u ",prr);

char variables()
{
   tieca=getc();
   return(tieca);
}
es entonces cuando al mostrar en el LCD mi dato, no me muestra 3, sino 51....que puedo hacer? ...
18/10/2014 #384

Avatar de JoaquinFerrero

Si en vez de 3, pones otros valores, ¿qué sale?
18/10/2014 #385


querido joaquin gracias por responder tan rapido, resulta que al enviar un dato por el puerto serial, esta en ASCII y para convertirlo a decimal, pues debo restarle 48, es por eso que me saltaba 51, pero aqui genero otra duda, ya que envio datos mas grandes, por ejemplo 30, y solo me bota el numero 3, aunque, en el Virtual terminal del proteus si llega el valor (30) al mandarlo a imprimir, no lo reconoce
18/10/2014 #386

Avatar de JoaquinFerrero

Quizás es por lo mismo, que estás enviando "30" (dos caracteres), y no 30 (binario).
18/10/2014 #387


Talvez sea por eso, pero como puedo enviar datos binarios desde el VB? estoy usando el visual studio 2010 entonces solo puedo manejar el SerialPort no hay el MSCOMM, entonces necesito ayuda porfavor
20/10/2014 #388
Moderador

Avatar de D@rkbytes

Gokesefa dijo: Ver Mensaje
¿cómo puedo enviar datos binarios desde el VB?
Necesitas convertir la cadena de texto numérico ingresada al TextBox a su equivalente ASCII.

Para que veas cómo se realiza, adjunto un ejemplo. (Está escrito en VB 2008, pero no tendrás problemas.)

Suerte.
Archivos Adjuntos
Tipo de Archivo: rar SerialCOM.rar (111,0 KB (Kilobytes), 30 visitas)
22/10/2014 #389


Muchas gracias D@rkbytes eso sirvio para ver el dato por un puerto y saber si realmente esta llegando y efectivamente muestra el dato enviado en bits, por ejemplo el 24 (11000), pero ahora como puedo trabajar con esas variables como tipo entero? gracias de antemano
22/10/2014 #390
Moderador

Avatar de D@rkbytes

Gokesefa dijo: Ver Mensaje
¿Ahora como puedo trabajar con esas variables como tipo entero?
Pues no sé que quieras hacer, el dato enviado el microcontrolador ya lo interpreta como un número de 8 bits, desde 0 hasta 255.
15/11/2014 #391


Perdon por reabrir el tema mio, pero necesito ayuda ahora no con enviar datos de la pc al PIC sino al revez, y es que cuando pongo putc(1), nunca envia el dato que estoy esperando recibir en mi vb.net, alguna sugerencia?
15/11/2014 #392
Moderador

Avatar de D@rkbytes

Gokesefa dijo: Ver Mensaje
es que cuando pongo putc(1), nunca envía el dato que estoy esperando recibir en mi vb.net. ¿Alguna sugerencia?
Pues eso depende de la manera cómo estés recibiendo los datos.
No es lo mismo enviar un número entero que enviarlo como cadena. "String"
O sea, no es lo mismo enviar 1 que '1' y dependiendo de cómo trates lo que recibes, es lo que se interpretará.
16/11/2014 #393


La cosa va asi miren en mi codigo en C coloco esto
Código:
if(taux2>=60)
            {
               t--;
               putc(1);
               taux2=0;
               pito=t;              
            }
exacto, asi de censillo, si un contador llega a 60, pongo putc(1)
y en el lado del visual basic pongo, una variable b=0, como entero, y realizo un control para saber si b ha cambiado de valor leyendo constantemente el puerto
Código:
While (b <> 0)
                b = SerialPort1.ReadLine()
            End While
estoy haciendo algo mal? como deberia poder hacerlo, gracias de antemano
16/11/2014 #394
Moderador

Avatar de D@rkbytes

Gokesefa dijo: Ver Mensaje
¿Estoy haciendo algo mal? ¿Cómo debería poder hacerlo?
Te mencioné que dependiendo de la forma como trates los datos que recibes, será la forma de interpretarlos.
Prueba utilizando ReadByte() en vez de ReadLine()
16/11/2014 #395


gracias por responder darkbytes, probe colocando readbyte() pero sigue sin funcionar
16/11/2014 #396
Moderador

Avatar de D@rkbytes

Gokesefa dijo: Ver Mensaje
Gracias por responder, D@kbytes. Probé colocando readbyte() pero sigue sin funcionar
Pues algo debes estar haciendo mal.
Te envío un ejemplo con simulación y programas en PIC C y en Visual Basic 2008.
El programa en C envía un 1 o un 0, el programa en VB sólo actuará al recibir un 1.
Archivos Adjuntos
Tipo de Archivo: rar SerialCOM Rx, Tx.rar (143,3 KB (Kilobytes), 8 visitas)
16/11/2014 #397


Una vez más, gracias por responder. Intento aplicar tu ejemplo a mi trabajo, pero sigue sin funcionar.
Cómo información adicional, debo decir que cuando lee el dato, lo guardo en otro form para leerlo y ponerlo en un Label, pero el label nunca cambia de valor, no entiendo q puede estar pasando.
28/11/2014 #398


Pude hacer que mi programa funcione con ayuda de tu programa, tuve que entenderlo muy bien para aplicarlo.
Muchas gracias D@rkbytes, ahora haré la prueba de mi proyecto y les comento cómo me va.


Malas noticias, en la simulación corre perfecto, de maravilla, pero cuando armo el circuito, pareciera que los datos nunca llegan al pic :(
28/11/2014 #399
Moderador

Avatar de D@rkbytes

Gokesefa dijo: Ver Mensaje
Malas noticias, en la simulación corre perfecto, de maravilla, pero cuando armo el circuito, pareciera que los datos nunca llegan al pic :(
Entonces será conveniente que realices una depuración del programa usando ICD.
De esa forma puedes ir siguiendo paso por paso lo que hace el programa físicamente.
28/11/2014 #400


y, pues, como hago eso, muchas gracias por el interes colega, pero cabe recordar, que en proteus corre excelente, no entiendo muy bien que es eso de depuracion usando ICD...me gustaria saber que puedo hacer para solucionar esto, pues es para el lunes a primera hora :(
¿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.