el 05-14-2014 11:25 AM
Hola a todos, bueno estoy trabajando en un proyecto donde debo medir voltaje, corriente, temperatura y la irradiacion solar en un panel fotovoltaico. Me fue de maravilla en la conversion de dichos valores a voltaje por lo que simplemente mi programa debe graficar todos los valores en funcion del tiempo. Bueno recien estoy empezando a manejar el paquete de Arduino en Labview por lo que tengo muy poca experiencia.
Mi problema es el siguiente, cuando conecto cada pin de modo independiente, lee la señal de manera estable pero cuando quiero leer los cuatro puertos simultaneamente, la señal se vuelve loca y los datos analogicos se ven afectados por el ruido. ¿como puedo leer cuatro datos diferentes de 4 puertos diferentes sin que la señal de ninguno se vea afectada?
Adjunto el programa, Gracias por su tiempo
¡Resuelto! Ir a solución.
el 05-14-2014 03:16 PM
Hola,
En este momento no tengo LabVIEW a la mano, si puedes subir una imagen del código sería excelente. Y lo otro es que no debería haber problema en hacer las 4 mediciones, ¿puedes colocar el diagrama eléctrico que estas utilizando?
Saludos,
el 05-14-2014 03:31 PM
Claro aca esta
el 05-15-2014 03:31 PM
Saludos GonchiNavía
¿Qué sucede si coloca todas las lecturas analógicas una después de la otra dentro del bucle While? ¿Podría subir una imagen con los datos leyendo cada pin independientemente, y otra con los 4 al mismo tiempo, para ver la diferencia? Su ayuda se le agradece. Tenga un buen día.
Saludos
el 05-15-2014 04:16 PM
Hola,
Como te dice Tortu (Luis J.) el Arduino es un recurso único y por lo tanto deberias usarlo para una cosa a la vez, por ello deberiás colocar las cajas de lectura una siguiendo a la otra, ya que como lo tienes actualmente está en paralelo y LabVIEW puede automaticamente separar tu ejecución en 4 hilos independientes que se traten de comunicar con el Arduino al mismo tiempo y eso puede llevar a que se mezcle la información y se produzca un comportamiento no deseado.
Saludos,
el 05-15-2014 04:20 PM
Que tal GonchiNavía,
Gracias por utilizar los foros de national instruments.
No has intentado ponerlo en ciclos paralelos? para que cada medición tenga su propia temporización. Esto podría ayudarnos.
Puede que el problema se de por los recursos del Arduino, o del VI de read. Que sea un recurso compartido y esto nos meta ruido en las mediciones. En caso de ser así debemos de hacer las mediciones secuenciales y no paralelas.
Podríamos realizar esta pequeña prueba de los ciclos paralelos y verificar esta parte. Primero hacerlo con dos entradas, ver como se comportan e ir incrementando hasta las 4 entradas analógicas.
Espero que esta información les sea de utilidad.
Saludos!
el 05-18-2014 06:31 PM
Por supuesto aca te muestro como es la salida manejando solo un pin analogico, donde medimos la temperatura con el sensor LM35, la temperatura actual en mi ciudad es de 19 °C por tanto hay una alta eficiencia en la respuesta:
la siguiente imagen podemos apreciar la inestabilidad de la señal, con el manejo de solo dos entradas analogicas, con el mismo sensor la señal oscila entre 5 y 35 °C:
el 05-19-2014 12:41 PM
Que tal GonchiNavía,
Puede que sea ruido proveniente del multiplexor debido a la temporización de las tareas. Que en realidad no se pueden hacer simultaneas. Lo que podríamos checar es si el VI de lectura es un recurso no re-entrante o re-entrante. Esto lo podemos revisar en File>>VI properties, en la sección de Execution, verificar que esté como un VI no re-entrante. Esto significa que está configurado como un recurso no compartido, o que no podamos acceder a él cuando está siendo utilizado en otra parte del programa.
En la imagen que nos compartes donde se tienen las dos entradas, entiendo que la medición se está llevando a cabo por la entrada analógica 1, estoy en lo correcto?
Saludos!
el 05-19-2014 01:19 PM
Hola GonchiNavía,
Prueba con este VI que te adjunto en que las lecturas se hacen una a continuación de la otra y dime si te funciona.
Saludos,
el 05-19-2014 01:59 PM
Hola,
En el VI que acabo de subir, falto cablear dentro del evento del stop:value change el cable del arduino y del error.
Saludos,