El tacómetro
digital está diseñado para medir las
RPM de un motor de aeromodelismo. Estos trabajan
en un rango de 3000 a 15000 RPM (notar que es bastante
mayor que las RPM de un motor de automóvil)
por ser de muy pequeña cilindrada, tan sólo
de 4 a 10 cm3.
Para medir las RPM se utiliza un
sensor infrarrojo, el cual cuenta las vueltas que
da la hélice cada vez que las palas cruzan
delante del sensor y tapan la entrada de luz. Este
sensor se conecta a un CI 4093, el cual posee entradas
Schmitt-Trigger para evitar ruidos e interferencias
en la cuenta de pulsos. Este CI no sería
necesario colocarlo, ya que el pin RA4 es de tipo
Schmitt-Trigger, pero lo mejor es aislar la entrada
ya que el consumo del sensor infrarrojo puede llegar
a 100mA. Un aspecto a tener en cuenta es que las
hélices de los aviones pueden tener 2 o 3
palas, produciendo un pulso en el sensor infrarrojo
por pala por cada vuelta del motor. La selección
de tipo de hélice se realiza a través
de la entrada RA1, la cual se conecta a masa si
se selecciona hélice tripala y se conecta
a Vcc si se elige una hélice bipala.
La medición se muestra en
tres displays de siente segmentos, los cuales se
conectan al PIC directamente sin necesidad de decodificador.
Los caracteres se convierten de BCD a 7 segmentos
en una tabla diseñada para utilizar displays
de ánodo común. La ventaja de este
método, aparte de ahorrar un CI decodificador,
nos permite generar otros caracteres no disponibles
en un CI decodificador. En nuestro caso, si la cuenta
rebasa los 999.999 RPM se muestran los caracteres
ERR en el display.
Para visualizar los dígitos
en el display, estos se multiplexan en tiempo, encendiéndose
alternadamente mediante tres transistores PNP, los
cuales se conectan a su vez a las salidas RA2, RA3
y RA4. Para poder visualizar sin notar esta conexión
alternada debe refrescarse la imagen completa en
menos de 0,4 segundos (el ojo capta hasta 25 cambios
por segundo). En nuestro caso se actualiza más
rápido, cada 0,018 segundos el display y
cada 0,006 cada dígito.
Este tiempo de refresco se obtiene
a través del TIMER0. Para ello se configura
el prescaler en 32 y se coloca el valor 3Dh en el
registro TIMER0 durante la interrupción.
El Timer0 cuenta hasta 194 veces hasta que rebasa
su cuenta, generando una interrupción cada:
1µs . 32 prescaler
. 194 = 6208µs
Cada vez que una pala de la hélice
corte la luz al sensor infrarrojo, el PIC incrementa
el contador de vueltas en 1. Este contador consta
de tres registros que cuentan en BCD: DIG1, DIG2
y DIG3. Para mostrar el resultado en el display
debemos calcular durante cuánto tiempo hay
que contar los pulsos del sensor infrarrojo (esta
técnica se llama muestreo de pulsos). Por
este motivo si se tiene una hélice bipala
girando a una velocidad de 10.000 RPM se muestra
en el display el valor de 100 (se le pueden agregar
dos displays mostrando dos ceros). Para 10.000 RPM
se obtienen:
10.000 RPM/3600 seg = 166,6
RPS
Si la hélice tiene dos palas:
166,66 RPS x 2 palas = 332,2 pulsos
Si tiene tres palas: 166,66 RPS
x 3 palas = 499,8 pulsos
Para que el display muestre 100
se deben contar los pulsos durante 100/333,2 = 0,3
segundos. En el caso de tener una hélice
tripala se debe contar durante 100/499,8 = 0,2 segundos.
Como no tenemos otro timer disponible en el PIC,
debemos utilizar el mismo timer0 que usamos para
el refresco del display para obtener el tiempo de
muestreo. La manera de hacerlo es utilizar un contador
que incremente en cada rutina de interrupción
de TIMER0. Este contador incrementa hasta 30h si
es una hélice bipala y hasta 20h si es tripala.
Una vez que el contador llega al máximo se
copian los valores de los registros DIG1:DIG3 a
los registros VALOR1:VALOR3 que actúan como
buffer manteniendo el valor para ser visualizado,
mientras los registros DIG1:DIG3 reinician la cuenta.
Como se ve, la mayor parte del
tiempo el PIC está esperando un pulso dentro
de un lazo cerrado. Esto no justifica el uso de
la entrada de interrupción externa y permite
liberar la entrada RBO/INT para ser usada para mostrar
el display.
Hay dos formas de probar el funcionamiento
del tacómetro. La primera necesita un motor
de CC de hasta 12 V al cual se le pega con una cinta
adhesiva un cartón que simula una hélice
bipala. Al motor se le controla la velocidad con
una fuente de tensión externa o con varios
diodos 1n4001 en serie que le reduzcan 0,7 voltios
por cada uno. Es posible que el sensor infrarrojo
necesite ser envuelto en un tubo de plástico
negro, para que la luz ambiente del costado no interfiera
con la medición.
La otra forma es conectar un transformador
de baja tensión (hasta 12V máx.) al
cual se la rectifica con un diodo 1n4004 y se le
conecta un LED y una resistencia serie como carga.
Este LED se enfrenta con el sensor infrarrojo haciendo
un acoplamiento OPTICO de la señal de 50Hz
de la red hacia el tacómetro. Si se arma
un rectificador de media onda y se selecciona una
hélice bipala se obtendrá una medición
de:
0,3 seg . 50Hz = 15 pulsos
Si se arma uno tipo puente
0,3 seg . 50Hz . 2 semiciclos
= 30 pulsos
Tener en cuenta que estos rectificadores
de prueba no deben poseer ningún tipo de
filtros ni capacitores.
Es posible modificar el programa
para que pueda contar pulsos en Hz en forma directa.
Para ello debemos incrementar el tiempo de muestreo
a 1 seg. mediante el cambio en constante del registro
CONTADOR. Debemos cambiarla por el valor
1 seg / 6208 µs =
161 veces
|