viernes, 9 de diciembre de 2011

LED VU METER en un HCS08 de Freescale

Al igual que en el desarrollo anterior, en estre trabajamos una parte analoga
(muy sencilla) y una digital.
Consiste en realizar el famoso VU METER o visualizador de nivel de audio usando un arreglo de LEDS.

Aqui esta el diagrama esquemático del circuito utilizado:






El firmware Se divide en dos partes:

1. Muestreo
2. Visualización

1. Muestreo

Utilizando un microcontrolador Freescale de la familia HCS08 (8bits) y lenguaje ANSI C, se configura el conversor ADC (10Bits) interno para que tome una muestra cada 14uS. Se toman 10 muestras y se calcula el promedio, se guarda este resultado como un dato de ADC válido para ser procesado por la función de visualización que se encarga de ajustar el valor matemático en un formato coherente para ser mostrado en los LEDS.

2. Visualización

La visualización se hace realizando un calculo matemático en donde se escoge un valor constante que va a ser la sensibilidad del nivel mostrado según el valor máximo del ADC.


num = ((float)8 / (float)512);
num = (num * (float)valor);
nument = (unsigned int)num; 



El cálculo es 8 LEDS dividido la constante de sensibilidad multiplicado por el valor leído del ADC. Esto da como resultado un valor entre 0 y 8 para ser visualizado. Pero para que se muestre como una barra de progreso, es necesario cambiar el valor del byte de la siguiente forma: