Translate

miércoles, 3 de julio de 2013

Aplicación modo CAPTURA: sensor TSL235

En la entrada anterior describimos la funcionalidad del modo Captura del módulo CCP. En esta entrada usaremos dicha funcionalidad en una sencilla aplicación.  

Vamos a usar el sensor TSL235, que es un medidor de intensidad de luz. Al contrario que otros sensores, cuya salida es un voltaje proporcional a la irradianza recibida,  la salida de este sensor es una onda cuadrada, cuya frecuencia es proporcional a la magnitud (luz) medida. 

Usando el módulo de CAPTURA mediremos el periodo de los pulsos emitidos. A partir de dicho periodo será sencillo deducir su frecuencia y de ahí la irradianza (en W/m2) recibida.

Como en entradas anteriores, los datos recibidos se mandan al puerto serie del PC donde usamos un programa MATLAB para ver los resultados.

Archivos de código asociados a esta entrada:  

  Código para PIC      tls235.c  

  Programa MATLAB    flicker.m  



--------------------------------------------------------------------------------------------

Modo de Captura en el módulo CCP

En una entrada anterior (PWM) vimos una de las funcionalidades del módulo CCP. En esta entrada describiremos otra de sus funcionalidades, el modo CAPTURE.

Como su nombre indica, este modo se usa para capturar eventos. Los eventos serán bajadas o subidas de los pines correspondientes a CCP1 y CCP2 que son, respectivamente, RC2 y RC1 (este último puede cambiarse por RB3 en la configuración inicial).  Para la captura se precisa que un timer este corriendo. Este timer será nuestro "reloj": capturar un evento será grabar la "hora" (contador del timer) en que se ha producido. Los timers usados con el módulo de CAPTURA pueden ser tanto el TMR1 como el TMR3.

Podríamos conseguir similares resultados usando las interrupciones INTx que vimos en los codificadores en cuadratura. Cada vez que entre la interrupción podríamos guardar el valor de un timer que este corriendo. La diferencia es que con este enfoque, para cuando "miremos la hora" ya habrá pasado un tiempo (mientras el micro termina lo que esté haciendo, pasa el control a la interrupción, etc.) que puede ser del orden de microsegundos.

Por el contrario, si se usa el método de captura, en cuanto se produce el evento se copia el valor del timer usado a los registros CCPRxH:CCPRxL. Por supuesto, será nuestra responsabilidad guardar dicho valor en otra variable antes de que se repita el evento y se machaque con otro valor.

En la entrada explicaremos la configuración del modo de CAPTURA y los registros asociados. En la siguiente entrada usaremos el modo de CAPTURA para leer los datos de un sensor de luz (TSL235) cuya salida en una onda cuadrada de frecuencia variable. 

--------------------------------------------------------------------------------------------