DATASHEETS Encuentra en
este enlace todos las hojas de datos que necesitas para tus
montajes
Indicador de nivel con LCD (Vumetro)
Los indicadores de
nivel analógicos vienen sufriendo desde hace un tiempo el desplazamiento
lógico de la escena que le ha impuesto el avance tecnológico. La
necesidad de interpretar en una escala graduada la posición de un
indicador requería de un tiempo y un trabajo que fue reemplazado por
vistosos indicadores digitales que presentan la numeración exacta del
valor que estamos intentando mesurar. Sin embargo, existen aplicaciones
que no te exigen saber un valor exacto sino tener una información
estimada de un “cuánto”. Ejemplos claros de esto que mencionamos son los
vumetros de audio, los indicadores de nivel de señal de recepción y toda
aquella indicación que suponga una medición dinámica de cualquier
magnitud.
Si tienes delante de
tus ojos un vaso con la mitad de su capacidad completada y, por otro
lado, un display que indica el número “50%”, ¿cuál de las indicaciones
provocará en tu cerebro una verdadera impresión de la cantidad y real
magnitud?
Conviene dejar sentado desde el principio la fácil confusión existente
entre ESTÍMULO y PERCEPCIÓN. El estímulo pertenece al mundo exterior y
produce un primer efecto o sensación en la cadena del conocimiento; es
de orden cualitativo, como el frío, el calor, lo duro, lo blando, lo
rojo, lo blanco. Es toda energía física, mecánica, térmica, química o
electromagnética que excita o activa a un receptor sensorial. En cambio,
la percepción pertenece al mundo individual interior, al proceso
psicológico de la interpretación y al conocimiento de las cosas y los
hechos.
Importante: Si lo que encuentras
aquí te resulta útil, ayúdanos a mantener
este sitio. Cualquier donación es bienvenida. Tu apoyo nos
permitirá acceder a nuevos materiales y a montajes más
interesantes y útiles. Gracias por ayudarnos a hacer
Servisystem cada día mejor. Tu ayuda será muy importante
para nosotros. Gracias.
¿Con los indicadores analógicos,
cuantificamos mejor las proporciones y lecturas?
Identificar la realidad por las impresiones que se producen en nuestros
sentidos es una de las más firmes evidencias de la misteriosa perfección
de la mente humana.
La psicología es la encargada de explicar la diferencia que existe entre
las sensaciones recibidas y la realidad del mundo físico que nos rodea,
aunque están implicadas otras muchas ciencias, como la geometría, la
física o la biología. Porque “50%” para algunos significa que el vaso
está medio lleno y para otros que el vaso está medio vacío. Por lo
tanto, esas dos neuronas de más que deben ponerse en acción para
decodificar lo que vemos (estímulo) y luego codificarlo en una sensación
(percepción) no funcionan a la misma velocidad y de igual modo en todos
los seres humanos.
Por todo esto, cuando debas realizar un trabajo que requiera la
utilización de un LCD alfanumérico, instalar un indicador analógico
dentro de la aplicación digital puede ser la determinante del éxito de
una aplicación de medición dinámica. ¿Qué te llega más: el movimiento
analógico de una barra al cuantificar sonido o dos dígitos que varíen
entre 00 y 99 indicando lo mismo? Mediante un programa mucho más
sencillo de lo que crees podrás adaptar e incrustar indicadores
“analógicos” dentro de un LCD alfanumérico.
El circuito.
La aplicación es muy sencilla de construir: se realiza con cualquier
microcontrolador que posea una entrada analógica para poder realizar las
mediciones de la magnitud que quieras representar. Lo siempre distinto
será la etapa previa a la entrada del microcontrolador, aunque el
objetivo final es transformar el dato a mostrar en una variable que
posea una excursión entre 0 y 5 Volts. Como siempre, te recomendamos
utilizar en la entrada un diodo zener de 5,1 Volts o 5,6 Volts para
proteger el microcontrolador.
Protección de una entrada analógica con
un diodo zener
Si lo que deseas es utilizar el desarrollo como un simple indicador de
tensión, te bastará con realizar un divisor resistivo de entrada para
adaptar los niveles a los que soporta el microcontrolador seleccionado.
Si la magnitud a evaluar es otra (temperatura, corriente, señal de RF,
etc.), deberás intercalar un circuito capaz de transformar esa energía
en una tensión variable entre 0 y 5 Volts. Debido a que el abanico de
posibilidades es demasiado amplio como para abarcar todas las
aplicaciones posibles, tú deberás optar por la interfaz de entrada más
conveniente de acuerdo a la necesidad de tu construcción. Luego, se
requiere de una conexión sencilla de cuatro bits a un display
alfanumérico, que puede ser de la cantidad de caracteres que desees, y,
por supuesto, una fuente de alimentación acorde al circuito que quieras
desarrollar. Nada más. Todo muy sencillo y elemental. He aquí el video
que demuestra el funcionamiento:
El Tutorial de
Televisión que ha ayudado a miles de técnicos de toda América a aprender
cada día más del oficio.
Un circuito elemental y
muy demostrativo es el que hemos armado con un potenciómetro lineal
conectado a una de las entradas analógicas del microcontrolador (como es
nuestra costumbre, un PIC) que nos permitirá visualizar y optimizar
nuestro código de acuerdo al buen gusto que requiera el diseño, junto a
las necesidades que la aplicación requiera. Es decir, en lugar de
visualizar simples barras o segmentos, podemos utilizar asteriscos,
letras u otra simbología simpática y agradable. El resultado final
esperado será siempre el mismo: lograr la percepción a través del
sentido visual para facilitar la lectura sin necesidad de activar
mecanismos cerebrales “extras”.
El código empleado en el PIC
La mecánica empleada en el armado de la rutina que utilizaremos seguirá
los pasos habituales que empleamos en Basic, tal como hemos hecho en
cada ejemplo presentado en NeoTeo. De todas formas, un programa bien
comentado o explicado en la misma secuencia en que se desarrolla puede
servirte para armar tu rutina sea cual fuere el lenguaje de programación
que decidas emplear.
En este caso, definimos el PIC a utilizar y su respectivo cristal; luego
la conexión del LCD, los parámetros de funcionamiento del conversor
analógico–digital y las variables que utilizaremos dentro del programa.
Hasta aquí todo muy clásico. Las instrucciones “diferentes” que podemos
ver en el listado comienzan con las directivas PRINT $FE y PRINT $0.
Cuando a una instrucción PRINT no se la continúa con un indicador de
posición, ésta se transforma en una orden directa al LCD. En el caso
particular de PRINT $FE, se hace referencia a cualquier actividad que
intentemos desarrollar con un cursor titilante (de visión intermitente)
sobre la pantalla.
Por ejemplo, PRINT $FE, 1 equivaldrá a la instrucción CLS (limpiar la
pantalla); PRINT $FE, $0E significará que un cursor intermitente
(emulando un guión bajo) aparecerá debajo de cada carácter del display.
Como éstos, todos los comandos especiales PRINT $FE aparecen bien
explicados en la ayuda de los compiladores (en este caso, Proton Lite).
Por otra parte, PRINT $0 indica que escribiremos directamente sobre la
CGRAM del display, mientras que la terminación $0 al final de la
instrucción cumple la función de terminación de la cadena de datos
enviados (NULL). Dentro de estas instrucciones, REP c/n nos indica que
enviaremos hacia el display al caracter c durante n veces.
Dentro del lazo de medición, lo que haremos es tomar el valor presente
en la entrada analógica seleccionada, que tendrá una excursión entre 0 y
5 Volts y adoptará un valor numérico dentro del PIC comprendido entre 0
y 1023. Para entregar a través del LCD la conversión correcta,
deberíamos utilizar el siguiente cálculo matemático:
DATO = (DATO * 500)/1024
Al efectuar la multiplicación por 500, estaríamos saliéndonos de la
capacidad de una variable WORD, por lo que utilizaremos la operación
matemática que nos ofrece Proton “*/” (Multiply Middle Operator) para
mantenernos siempre dentro del límite del tamaño de la variable.
Entonces, el resultado de la expresión nos queda de la siguiente forma:
DATO = (DATO */ 500) >> 2
De esta manera, se abrevia en una sola instrucción el trabajo con
fracciones y nos permite utilizar números enteros en los cálculos sin
necesidad de apelar a una variable FLOAT que nos ocuparía un espacio
valioso en cantidad de BYTEs utilizados y que, en ocasiones, no podemos
darnos el lujo de desperdiciar.
Listado de programa utilizado en el
ejemplo
Luego, dentro de la variable MUESTRA, colocamos la cantidad de segmentos
que ocupará nuestro LCD. Para el caso de 16 caracteres, serán 48. Por lo
tanto, la cantidad de caracteres COMPLETOS (que tengan los tres
segmentos) surgirá del resultado de la muestra obtenida dividido 3,
mientras que los resultados para ocupar la variable PARCIAL quedarán
relegados a aquellos que no obtengan un cociente con resto igual a cero.
Esto es lo que se conoce en Basic como operación “MODULUS //”. Aquí
entrarán los caracteres que poseen dos y un solo segmento. Por último,
completamos el display con espacios vacíos que serían los que quepan en
la variable PAD. Al armar la impresión de la línea, colocamos repetidos
los caracteres completos (REP $03\COMPLETOS); luego viene el PARCIAL,
que siempre será uno solo (sea de un segmento o de dos); y por último
viene la repetición de PAD (espacios vacíos) hasta terminar el renglón.
Esta sería una de las tantas formas posibles de construir una barra
indicadora de nivel en Basic (Proton). Podemos armar así un vumetro de
audio, un indicador de nivel de agua, un instrumento para medir
intensidad de señales de radio, un voltímetro y todo lo que requiera de
un instrumento dinámico de medición donde las sensaciones prevalezcan
por sobre la fría información numérica. Otro ejemplo: un indicador de
nivel de audio sencillo y elemental como éste:
Como
siempre decimos, tú puedes hacerlo mejor, tú puedes mejorar la estética
de los mensajes, tú puedes repetir la rutina en el programa y hacerlo
estéreo, tú puedes cambiar las barras verticales por otra clase de
caracteres, tú puedes mostrar texto en caso que el audio baje a silencio
indicando tu nombre o alguna indicación útil y funcional al instrumento.
Es decir, tú puedes hacerlo y para nosotros es un orgullo que lo logres
y nos lo muestres.
Importante: Si lo que encuentras
aquí te resulta útil, ayúdanos a mantener
este sitio. Cualquier donación es bienvenida. Tu apoyo nos
permitirá acceder a nuevos materiales y a montajes más
interesantes y útiles. Gracias por ayudarnos a hacer
Servisystem cada día mejor. Tu ayuda será muy importante
para nosotros. Gracias.