Comunicación con Visual Basic

Este post es una continuación de los dos anteriores “Comunicación Serie I y II”. En este caso lo que realizamos es una comunicación con un programa desarrollado en Visual Basic 2010 Express.

Una vez comprendido como se comunica la placa Arduino, lo que falta por explicar es como lo realiza VB, pues bien el funcionamiento a grandes rasgos de la aplicación es el siguiente:

  • Inicializamos el puerto serie

Inicializar

  • Diseñamos el Formulario

Formulario

  • Creamos un Procedimiento que obtiene los datos

Procedimiento

  • Establecemos un tiempo de petición de datos, que en esta aplicación es seleccionable.

tiempo

Cuando queremos un dato el programa(VB) manda un “10” con la sentencia “SerialPort1.Write(Chr(10))”, Arduino la recibe con el código “if (Serial.available()) ….  dato = Serial.read() …    if (dato==10)” y manda el valor de la entrada digital con la sentencia “Serial.println(analogRead(sensorPin))”, es un sistema de petición y concesión de datos.

Para que Arduino y Visual Basic se entienda deben establecerse los mismos parámetros de comunicación.

 

Arduino                                                                    Visual Basic SerialPort

Arduino COM3

 

 

Serial.begin(9600);

 

 

 

 

 

 

 

 

 

 

Esta es una aplicación que simula el funcionamiento de un polímetro digital, por supuesto, solo está operativo la lectura de voltajes en el rango de 0 a 5 voltios en corriente continua.

 

Con algunas modificaciones se puede llegar a completar su funcionamiento.

 

Por ejemplo:

Para la medida de corriente alterna, basta con insertar un diodo rectificador en serie. 

Para la medida de intensidades, se puede poner un transductor de intensidad a otra de las entradas analógicas.

Para la medida de resistencias, se puede construir un Puente de Wheatstone a otra entrada analógica diferente.

Y por último, para la medida de frecuencias, se puede utilizar un transductor de frecuencias a otra entrada analógica distinta.

Ahora solo falta utilizar las salidas digitales, para mediante reles, conmutar las distintas lecturas.

 

La captación y representación de valores con un tiempo definido, si está implementado, con ello se puede monitorizar el funcionamiento de un circuito.

Esto no es más que el inicio de un proyecto que falta por completar y que animo a que lo realicéis, y si no os importa me lo comuniquéis.

 

Espero haber sido capaz de explicar el funcionamiento del proyecto, si tenéis alguna duda, no dudéis en contactar, y si la se, os la resuelvo.

Esquema Eléctrico:

Comunicacion_VBasic_Esquema

Esquema Práctico:

Comunicacion_VBasic_

Código del Programa Arduino:

Codigo_VBasic

Código del Programa Visual Basic:

Codigo_Visual_Basic

Fotos:

DSC_0036

shot0001

Captura de Pantalla de la Aplicación

Código fuente:

Polimetro.ino

Ficha del Proyecto:

Comunicación Visual Basic Ficha 19

Vídeo resumen:

 

Anuncios

Publicado el noviembre 4, 2013 en Arduino, Comunicacion Serie, Electrónica, Programación, Visual Basic. Añade a favoritos el enlace permanente. 32 comentarios.

  1. Hola!
    Muchísimas gracias por el post de comunicación entre visual y arduino, realmente me ayudo muchísimo.
    Mi pregunta era: ¿La codificación es tan breve?
    Tengo que conectar un sensor de peso (no es lo mismo que presión) y para eso tengo que medir voltajes de entrada, es decir, 4.12 V → 3.245 g. y necesitaba que el arduino lo identificara y que esos datos de conversión los transfiera a visual.
    Espero no molestarte, tan solo quería verificar cuan compleja es la codificación y si te interesaría ayudarme con este proyecto, no es la gran cosa, pero seria interesante hacerlo.
    Nuevamente gracias
    Atte. Irma Nieves
    irmanieves@hotmail.com

    • Hola Irma, me alegro que te sea útil.
      La codificación de Arduino es muy rápida, como puedes ver en el video, el retardo es prácticamente nulo para un uso normal.
      Aunque no dispongo de mucho tiempo libre, dime como te puedo ayudar y con tranquilidad te podría guiar en el proyecto.
      Saludos Jesús

      • Hola Jesús, tenes disponible el código visual completo? (no el de comunicación, el desarrollo de la visualización de los datos que recibís del puerto).
        Lo necesitaba porque tengo que guiarme con respecto a un sensor de presión y quería visualizar esos datos en visual, tal como lo hiciste anteriormente
        Nuevamente Gracias
        Atte. Irma Nieves
        irmanieves@hotmail.com

      • Buscando en los archivos que tenía en el 2013 he encontrado esto, te dejo un enlace por si te ayuda:
        https://www.dropbox.com/s/voo1pxvlelszt8u/Panel.pdf?dl=0
        ¿Igual también es útil para Eduardo?
        Saludos Jesús

      • Hola Jesús:
        Antes que nada, quería agradecerte por haberte tomado el tiempo de buscarlo, voy a intentar adaptarlo a mi proyecto, pero para empezar es mucho mas que suficiente.
        Aprecio mucho tu dedicación y te avisaré de mis avances con respecto a esto.
        Infinitamente agradecida con usted.
        Saluda Atte. Irma Nieves
        irmanieves@hotmail.com

  2. Sr. Jesús:

    Primero debo felicitarlo por vuestro proyecto. Me interesa en lo posible si dispone del código completo en visual basic, quisiera darle continuidad con mis alumnos. Sin compromiso, lo saluda Atte, Eduardo.

    • Gracias por tu reconocimiento, aunque ya hace casi un año y medio que realicé este proyecto, si me facilitas el correo del centro de estudios, veré lo que puedo hacer.
      Saludos Jesús

  3. Estimado Jesús,
    el proyecto me es muy útil ya que pude comprender en detalle el código de comunicación de Arduino con Visual, además la pantalla de aplicación será un modelo para ajustarlo a mis necesidades.
    Saludos
    Horacio

  4. Hola Jesus: estoy tratando de hacer una GUI para un proyecto que por ahora es un lazo abierto de contrtol. Estoy viendo distintos lenguajes y no termino de identificar cuál me conviene para dicha tarea, si VB, VB.net, Python, Processing, etc. El tema es encarar el aprendizaje de uno para incorporar una herramienta de programación lo más eficaz posible para este y otros proyectos. Cuál crees que me conviene y qué bibliografía y tutoriales hay al respecto que me faciliten el proceso. cualquier sugerencia será bien recibida

    • Hola Daniel, siento no poder ser de mucha ayuda, pero no conozco con la suficiente profundidad los lenguajes que mencionas para poderte ayudar.
      Creo que si necesitas tener acceso pormenorizado al interfaz, los adecuados son VB y VB.net.
      He visto aplicaciones realizadas con Processing y la calidad gráfica frente a la sencillez es muy recomendable.
      Java es otro lenguaje que se pueden realizar GUI con muy poco esfuerzo y además es multiplataforma (creo que deberías sopesarlo).
      En cuanto a tutoriales de Java y VB en la red hay muchísimos. En principio todos los que son editados por una universidad son para empezar muy adecuados.
      Estoy seguro que no te he ayudado mucho, si me especificas algo más el proyecto, te puedo aconsejar que solución implementaría yo.
      Saludos Jesús

  5. Hola jesus me podrias decir como puedo mostrar en visual net la lectura de 6 sensores Ds 18b20 en 6 labels y que se me refresque la lectura bueno de hecho ya lo hice con 6 timers y diferentes intervalos de tiempo pero las lecturas no siempre estan estaticas alguna otra opcion o recomendacion

  6. Gracias por contestarme estare al pendiente Saludos

  7. hola que tal, quería saber si podrías mandarme mas a detalle el código de vb soy novato en programación y no entiendo bien esa parte, te lo agradecería mucho.

  8. Hola Jesus, estuve intentando recrear el voltímetro mediante el código que le pasaste a Inma y no consigo que funcione, me podrías decir si está incompleto o soy yo que tengo algun error. Por ejemplo la aguja del voltímetro no se borra al cambiar el valor de entrada de datos, gracias de antemano.

    • Si lo que has realizado es un simple copia y pega, es normal que no funcione, hay que realizar el interface y asignarle las correspondencias adecuadas al citado código. Debes crear primero el interface y posteriormente añadir poco a poco el código hasta logra su plena integración.

      Espero haberte ayudad.

      Saludos Jesús

  9. disculpa como encuentro o declaro el puerto para acceder al bluetooth interno de mi computadora para realizar el programa en visual basic.net 2013 pra comunicar el arduino por blueto con la compu

  10. el blurtooth interno de la computadora como lo declaro en visual basic.net 2013

    • En principio es muy fácil, cada dispositivo Bluetooth lleva asociado un puerto de comunicación de entrada/salida “COM” solo tienes que mirar cual es y listo.
      Espero haberte ayudado

  11. hola! disculpa se puede realizar la misma comunicación con un modulo wifi conectado al arduino?

  12. hola excelente post, estaba emulando el lm35 en proteus pero no consigo que el sensor me identifique temperaturas menor a 0 .podrias ayudarme,?

  13. hola tengo una falla con SerialPort1, hay que declararlo o hace falta alguna libreria uso visual basic 2010 el error que obtengo es (SerialPort1 no esta declarado )

  14. Hola, es increible tus proyectos, muy buenos.!!!
    Me gustaria saber si tienes algun ejemplo de como controlar un pin pwm de arduino con vb.net?.
    desde ya muchas gracias y te felicito por tus proyectos.!!!
    saludos
    fede

  15. de doonde registra datoos voltaaicos¨?

  16. Gracias por el aporte, me sirvió de mucho.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: