Artículos

Medidor ADC infrarrojo por RS232

Objetivo

Construir un circuito que mediante el uso de un microcontrolador PIC16 obtenga la medición de un voltaje y lo transmita vía infrarrojo a una interfaz RS232 de una computadora.
 

Operación del PIC

El pic que se empleó es el PIC16F877A ya que cuenta con los periféricos que se necesitaban para la aplicación, siendo estos el temporizador de 8 bits, el generador de modulación de ancho de pulso (PWM), el convertidor analógico-digital de 10bits y el puerto serial RS232.


El oscilador del PIC es un cristal de 4MHz y su fuente de alimentación puede ser de 4V a 5.5V, siendo en el caso de la aplicación un paquete de baterías de 4.5V.
 
El link de descarga para el software de VB se encuentra en la sección Programa del Receptor en Visual Basic.

Configuración de las entradas y salidas del PIC

El pic solo controla 5 de sus 33 terminales de entrada-salida. Las terminales empleadas son las siguientes:

    * Salida PWM a 38kHz -> RC2
    * Salida TX RS232 -> RC6
    * Entrada ADC -> RA0
    * Entrada de referencias de voltaje ->RA3 (Vref+) y RA2 (Vref-)

La configuración de las demás terminales se dejó como entrada.
 

Configuración de la modulación por ancho de pulso (PWM)

El PWM se necesita en la aplicación para generar una señal de 38kHz como portadora de la transmisión de información por puerto serial. La señal debe ser de 38kHz debido a que el receptor infrarrojo TSOP1738 empleado solo demodula señales con tal frecuencia, entregándolas en niveles TTL. Esto se explicará más a detalle en la sección del circuito.

Para la configuración del PWM se utilizaron las siguientes fórmulas, las cuales se detallan en la hoja de características del pic. La frecuencia de trabajo requerida es de 38kHz y el periodo de trabajo requerido es del 50%.




Donde:



El tiempo de trabajo del PWM que genera el PIC es de 10 bits, pero con la configuración que se propuso y el cálculo de la resolución se tiene que el máximo a utilizar es de combinaciones, lo suficiente para expresar 16us en términos binarios (25d = 0x19 = 011001b).

Con los cálculos generados se tienen y un .