viernes, 2 de junio de 2017

Práctica 4


Esta práctica consiste en controlar un sensor o actuador elegido por nosotros mismos, controlando un Arduino por medio de LabView. En mi caso he elegido un LED RGB.

En entradas anteriores hemos visto qué es LabView y como conectarlo con un Arduino. Esta vez nos centraremos en la programación y la realización de la práctica.

Lo primero es informarse sobre cómo funcionan los LEDs RGB. Un LED RGB es en realidad la unión de tres LEDs de los colores básicos (Red, Green, Blue), en un encapsulado común, compartiendo el 
Ground (cátodo es otro nombre más para el negativo). 



En función de la tensión que pongamos en cada pin podemos conseguir la mezcla de color que deseemos con relativa sencillez.




El montaje será el siguiente:




En contra de la norma habitual, en este caso el cable rojo no indica la tensión Vcc, sino el pin de gobierno del LED rojo. Es interesantes asegurarse de que hemos identificado bien los pines de cada tono y recolocarlos en caso de error.

Antes de empezar a programar, debemos saber cómo vamos a producir las distintas tonalidades.

Para indicar con qué proporción es mezclado cada color, se asigna un valor a cada uno de los colores primarios, de manera que el valor "0" significa que no interviene en la mezcla y, a medida que ese valor aumenta, se entiende que aporta más intensidad a la mezcla. Aunque el intervalo de valores podría ser cualquiera (valores reales entre 0 y 1, valores enteros entre 0 y 37, etc.), es frecuente que cada color primario se codifique con un byte (8 bits).

Así, de manera usual, la intensidad de cada una de las componentes se mide según una escala que va del 0 al 255 y cada color es definido por un conjunto de valores escritos entre paréntesis (correspondientes a valores "R", "G" y "B") y separados por comas.



De este modo, el rojo se obtiene con (255, 0,0), el verde con (0, 255,0) y el azul con (0, 0,255), obteniendo, en cada caso un color resultante monocromático. La ausencia de color, es decir el color negro, se obtiene cuando las tres componentes son 0: (0, 0,0). La combinación de dos colores a su máximo valor de 255 con un tercero con valor 0 da lugar a tres colores intermedios. De esta forma, aparecen los colores amarillo (255, 255,0), cian (0, 255,255) y magenta (255, 0,255). El color blanco se forma con los tres colores primarios a su máximo valor (255, 255,255).

El conjunto de todos los colores también se puede representar en forma de cubo. Cada color es un punto de la superficie o del interior de éste. La escala de grises estaría situada en la diagonal que une al color blanco con el negro.




Esto implica que utilizaremos salidas PWM para graduar la tensión que aplicamos a cada LED y así componer los colores.

Programación el LabView

Hay que distinguir tres grupos entre las instrucciones de Arduino que nos presenta LabView.




  • Azul: instrucciones de apertura y cierre de la aplicación
  • Rojo: instrucciones de bajo nivel, como las que utilizamos en el IDE de arduino
  • Amarillo: instrucciones complejas, similares a las librerías o los ejemplos del IDE


Cualquier programa que construyamos en LabView, debe cumplir la siguiente estructura, o corremos el riesgo de colgar el PC, entre otros muchos.



Antes de empezar con las instrucciones, sabemos que necesitaremos tres variables enteras de un byte (de 0 a 255) y una variable de stop para el programa.




Es importante siempre seprar las fuentes de las instrucciones, así como los controles de los indicadores. Estas buenas prácticas no van a facilitar el trabajo cuando los programas empiecen a ser complejos.

Ahora y siguiendo el esquema de antes, empezaremos con las instrucciones. Lo primero es crear el recurso, el while y cerar el recurso. Esto es una parte constante en casi todo los programas.




También hemos añadido un timer entre ejecuciones del while, que nos servirá para no colgar el PC con la ejecución de nuestro programa, y un stop para salir del bucle cuando queramos. Por último, la instrucción tras el cierre del sistema es un mensaje de error.

Una vez hecho esto, ya podemos ir directos a las instrucciones que activarán los diodos. La encontraremos dentro de las instrucciones de bajo nivel. Como queremos escribir en un PIN con PWM, debemos buscar la siguiente instrucción:



Y gracias a la ayuda del programa (ctrl+h) podemos ver los detalles de la misma. Esta instrucción necesita que le demos: un recurso sobre el que trabajar, un valor de tensión de trabajo y el pin que va utilizar.

Con esto, el algoritmo queda asi:




En el panel frontal, utilizaremos un control numérico deslizable para cada LED. El resultado es el siguiente:






De este modo, utilizando el control deslizable o el cajetín numérico, podemos establecer el tono que queremos, en codificación RGB.

No hay comentarios:

Publicar un comentario