Archivo de la categoría: Visual Basic

Polímetro 2

Basándome en la entrada anterior, he construido una simulación de lo que podría ser un polímetro.

Las características son la siguientes:

Intensidad entro 0 y 5 A

Tensión entre 0 y 5 V

Resistencia, lo he dejado para un posterior cálculo, aunque basándose en la ley de Ohm la implementación es muy sencilla.

Desarrollo en Arduino.

Está basado en la entrada anterior (https://ardubasic.wordpress.com/2016/10/01/midiendo-intensidad/) y lo que hace es sacar la media de las medidas que realiza el sensor. Anteriormente el sensor debe estar calibrado.

codigo_medida

Desarrollo en Visual Basic

Está basado en la entrada (https://ardubasic.wordpress.com/2013/11/04/comunicacion-con-visual-basic/) . Lo que he realizado es una mejora del diseño y la introducción de un sensor medidor de intensidad. He aumentado a tres las lecturas y el registro de los datos utilizando lo explicado en la entrada ( https://ardubasic.wordpress.com/2015/11/01/exportando-a-excel-los-valores/ ).

Obtener datos

obtener_datos_arduino

Se realiza una escritura del carácter ASCII 10 para que el Arduino mande los datos. Leyéndolos la aplicación a continuación.

Representar en la Pantalla de Medida

representar_en_pantalla

Dependiendo de la escala y el parámetro que hemos seleccionado, realiza la representación en pantalla.

Representación Gráfica.

representar_graficamente

Se realizan los cálculos para que la representación se realice entre unos puntos definidos.

Configuración del SerialPort.

serialport

En el cuadro verde, señalo el puerto de comunicación de la aplicación con Arduino.

En el cuadro azul, señalo el parámetro “DtrEnable” que debe ser True para el Arduino Leonardo, si no se realiza así, hay problemas en la comunicación, envía datos pero no recibe. Si es otra placa distinta esta última consideración, no se tiene que tener en cuenta.

Código Arduino

codigo_arduino

Circuito Teórico

polimetro_2_bb

Fotos

tension

Midiendo tensión y registrando los datos

intensidad

Midiendo Intensidad y registrando los datos

Código Fuente  Arduino Completo

Polímetro_2.ino

Proyecto VB 2015

Polímetro_Arduino.zip

Vídeo resumen:

 

 

 

Anuncios

Midiendo Sensores

He decidido dotar al ArduRover de tres entradas analógicas para poder medir y representar sensores externo que se conecten a él.

Es una evolución de la anterior entrada. En esta ocasión, doto al programa de un panel de configuración, para que se pueda personalizar las medidas que se realicen.

Configuración

Como podemos ver se puede configurar el nombre del sensor a representar, el valor de aviso(por si queremos que al llegar a un valor dado nos avise), si se representa o no, el valor máximo en la escala y un último valor que ajustará los valores recibidos a una escala real de medición.

Si conectásemos el sensor siguiente, el valor de conversión sería -> 0.4882

lm35.png

Continuamos con la posibilidad de almacenar los valores en una hoja de Excel, para su posterior análisis.

La programación con VB es casi idéntica al realizado en la entrada “Conociendo el Estado de los Sensores” y el posterior “ Exportando a Excel los valores”  con unos pequeños ajustes para parametrizar las medidas.

Una mejora que puede dar muy buen resultado es realizar una media de diez mediciones antes de enviar el valor desde Arduino a la aplicación, con esta minimizamos parte de los errores por ruido.

Esquema Práctico del Sensor LM35:

Medir_Temperaturas_Sensor

Esquema Práctico de las Entradas Analógicas:

Esquema_Practico

Lista de Piezas

Dibujo de la Pieza Nombre Nº Piezas
Hembra Soporte Hembra 1
Macho Soporte Macho 1
Pasamuros Porta Soporte 2

 

Extracto del Programa Arduino:

codigo_Arduino

 

 

Fotos:

Arriba_01

Vista SuperiorArriba_02

Detalle con sensores

frontal_01

Primer plano

VB_01

Visión General del Programa

Configuración

Detalle del Panel de Configuración

Código Fuente  Arduino Completo

Midiendo.ino

Proyecto VB 2015

Sensores de Entrada.zip

Vídeo resumen:

 

 

 

 

 

 

Exportando a Excel los valores

Esta entrada es una evolución de la anterior y por ello voy a ser un poco más conciso de lo habitual, considerando que ya habéis leído la anterior( Conociendo el Estado de los Sensores)

Lo novedoso es que sobre una misma gráfica pueden ser representados más de un valor y que los valores los almaceno en una tabla que luego la exporto a Excel.

Este proyecto está diseñado para aquellos casos donde sea necesario dejar una sonda y medir su estado a lo largo del tiempo con un máximo de medidas de 590 datos. Con el control del tiempo entre medidas podemos calcular los datos necesario o sabiendo los datos calcular el tiempo entre medidas

Declaración de Variables

Declaracion_de_Variables

Procedimiento obtener los datos

Obtener_Datos

Botón de inicio/fin de la obtención de datos

Medir

Botón de inicio de la exportación de los datos a Excel

Grabar_Datos_01

Procedimientos de exportación a Excel

Grabar_Datos_02

Fotos

Instantánea - 4

Pantallazo del Programa

Frente

Sensores LDR

Código Fuente  Arduino Completo

Comunicando.ino

Proyecto VB 2015

ArduRover-Excel.zip

Ficha del Proyecto:

Exportar_a_Excel_Ficha_41

Vídeo resumen:

 

 

Conociendo el Estado de los Sensores

Llevaba mucho tiempo queriendo realizar una entrada con programación en VB, al actualizarme a VB 2015 me ha parecido un buen momento para realizarlo.

Os dejo esta entrada donde realizo un programa que capta los datos de todos los sensores que hasta ahora tengo en el Rover y los representa de distintas maneras.

Los módulos son paramétricos y pueden ser exportados a casi cualquier proyecto.

Creo que al realizar una programación modular, queda bastante claro como lo he realizado, no obstante más abajo he puesto todo el proyecto para que podáis descargarlo. Si algo no queda claro( que seguro que hay), contármelo y si puedo os ayudaré.

Abrir Puerto de Comunicación

Abrir_Puerto_Comunicacion

Procedimiento de Obtención de Datos de los Sensores

Procedimiento_ObtenerDatos

Procedimiento de Representación de Datos Tipo Vúmetro

Procedimiento_Medidor_Vumetro

Procedimiento de Representación de Datos Tipo Analógico

Procedimiento_Medidor_Analogico

Modulo de Representación Gráfica de Datos

Procedimiento_Grafica

Procedimiento de Representación de Datos Tipo On/Off

Procedimiento_Medidor_Sensores

Extracto del Programa Arduino:

Codigo_Arduino

Fotos:

Pantalla_02

Ejemplo de Instantánea de Pantalla

Pantalla_01

Otro Ejemplo de Instantánea de Pantalla

Código Fuente  Arduino Completo

Comunicando.ino

Proyecto VB 2015

ComunicacionArduino.zip

Ficha del Proyecto:

Comunicación_Visual Basic_Ficha_40

Vídeo resumen:

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: