ADQUISICIÓN DE DATOS
Convirtiendo una señal analógica en una señal digital.
Este artículo, basado en información adquirida de la red es, una aproximación a los conversores AD, en el que se muestra que hacer para conectar una señal analógica a un PIC. Una señal analógica es similar a una onda senoidal y generalmente de amplitud inferior a 5V (5.000mV). Las señales de bajo nivel, generalmente se expresan en mV, para hacerlas reconocibles instantáneamente y facilitar el comentar o referirse sobre ellas.
La figura de la derecha muestra una señal analógica, esta señal puede ser tan baja como de unos pocos milivoltios o cientos de milivoltios. En general este tipo de señal será demasiado pequeño para ser detectado por la entrada de un microcontrolador. El micro necesita una señal mayor, sobre 3.500mV para que la forma de onda se presente sobre la línea de entrada como un nivel H (ALTO), durante el pico de su excursión. Este debería ser tan alto como sea posible, sobre 5.000mV para una detección fiable de la señal. La instrucción para leer un nivel H (Alto) es:
BTFSS 06,3 ;Comprueba si es H la línea de entrada RB3 (bit 3)
Esta instrucción comprueba la línea RB3 y si el bit es ALTO (la línea está Activa - la instrucción verá un ALTO) el micro saltará la siguiente línea del programa y ejecutará la línea que sigue en el programa, para su tratamiento. La forma de la onda no es del todo importante, ésta puede consistir en grandes y pequeños picos como muestra la figura de abajo.
En estos casos sólo los grandes picos serán detectados por el micro, los demás pueden ser demasiado pequeños para ser detectados y se despreciaran. Para aumentar en lo posible la señal analógica cerca de 5.000mV, como se muestra debajo, es necesario un amplificador.
Un amplificador de tal vez una o dos etapas, según la amplitud de la señal original. Cada etapa del amplificador aumentará el tamaño de la señal aproximadamente 70 veces. Si tenemos mucha suerte, se puede conseguir una amplificación de 100 veces. Así, una señal de 5mV con una etapa amplificadora puede que produzca una señal de 350mV. Esto no es suficiente para que pueda ser detectado por el micro, otra etapa elevará fácilmente la señal a 5.000mV y el micro sí detectará su presencia.
La segunda etapa sólo tiene que amplificar la señal aproximadamente entre 10 y 12 veces, será suficiente para el micro y la ganancia proporcionada por la etapa añadida, simplemente recorta la forma de onda del "bajo" y el "alto" como muestra la imagen.
Qué significa que la forma de onda estará "recortada" en lo alto y bajo, que será convertida a una forma "limpiamente cuadrada". Normalmente a esto se le llama distorsión pero, en términos digitales aquí, no nos preocupamos sobre este estado deformado y simplemente lo usaremos por sus propiedades de "disparo" que es lo que interesa.
Supóngase que tenemos una forma de onda que es más alta de 5mV (es decir 30 o 50mV) y queremos saber si esto disparará el micro con una única etapa de amplificación. Conectaremos el circuito de la imagen de abajo al micro con un LED en serie con la resistencia 270R al pin GP0, grabemos la siguiente rutina en un '84A y el LED se iluminará cuando la forma de onda sea detectada como un estado ALTO.
Programa para un '84A:
BSF STATUS,5 ; Selecciona pagina1 MOVLW 08 ; GP3 b'0000 1000, entrada TRIS 06 ; carga TRIS BCF STATUS,5 ; devuelve a pagina0 Test1 BTFSS 06,3 ; Forma de probar el bit 3 en el archivo 06 ; salta la próxima instrucción si el bit 3 es 1. GOTO Test2 ; si la entrada (RA1) es "1" va a Test2 BSF 06,0 ; si no GOTO Test1 ; vuelve a comprobar el bit 3 Test2 BCF 06,0 ; GOTO Test1 ; comprueba otro estado de entrada. End
Sólo hay un problema con el circuito de la imagen de la derecha. Al finalizar la señal de una palabra o sonido, la señal de salida puede quedar en H o en L, esto aplicado a un LED, este puede quedar iluminado o apagado. Esto depende de la forma de onda del último ciclo. El circuito se detiene con la salida a mitad de tensión aproximadamente y un microprocesador no sabe si esto es un alto (H) o bajo (L) y tomará la lectura por la dirección del último ciclo. Algunas entradas de los micros son disparadores Schmitt, con lo que se evita este defecto.
Esto significa que para poder ver un nivel alto, como un nivel lógico alto (H) tiene que ser del 85 % al 100 % de la tensión de suministro y entre el 20 % y el 0 %, para ver como un nivel bajo (L). Las entradas sin disparador Schmitt ven un bajo (L) del 20 % al 0 % y un alto (H) por encima de 2V hasta 5'5V.
Si el último ciclo fue de cero a mitad de la tensión, el micro con entradas disparador Schmitt verá la forma de onda como un bajo y sobre otro tipo de entrada un alto. Si el ciclo viene de un alto sobre la tensión media, la forma de onda será vista como un alto. Este problema puede ser superado mediante unas instrucciones en el programa, mirando la entrada y si esta no cambia, no se hace caso. Supongamos que el circuito apenas activa el micro con un fuerte silbido. Para mejorar la sensibilidad de la entrada será necesaria otra etapa.
Esta como se muestra en la imagen anterior puede ser una etapa digital o como se muestra en la imagen siguiente una etapa analógica.
Una etapa digital, simplemente significa que la resistencia de influencia (realimentación) está separada de la base del segundo transistor, entonces el transistor conectará totalmente (saturación) cuando es detectada una señal mayor que 650mV y estará en corte totalmente en otras ocasiones. Esta etapa es conveniente sólo si se está seguro que tenemos mucha "sobre tensión" para poner el transistor en saturación. Por esto pensamos, debe tener al menos 1v (1,000mV) entonces se puede estar seguro que la señal de paso saturará el transistor.
Esta etapa es ideal para el micro, ya que sólo entregará dos niveles de tensión. Tan bajo como 0v o el máximo voltaje (5v), otra ventaja es que la etapa no consume ninguna corriente. La subida y a veces caída rápida, significa que se tiene un período de tiempo "limpio" para operaciones de corte durante un ALTO o BAJO. Un micro determina la frecuencia de una señal de entrada, contando el tiempo para el ALTO o BAJO (entre una subida y bajada) y tomando una decisión determinada según el programa.
Si los anchos de los ALTOS y BAJOS son muy regulares, el micro puede tomar una decisión exacta muy rápidamente. Esto es muy importante si se detecta una frecuencia particular fuera de la gama posible de frecuencias, como el programa comparará la frecuencia entrante con un valor de una tabla, puede seguir probando hasta que se produzca un máximo exacto. La imagen anterior muestra que dos etapas análogas darán "sobre carga", el circuito produce una señal que es mayor de lo necesario para el micro y aún cuando la forma de onda de entrada es muy baja, la salida todavía será suficientemente alta para disparar el micro.
Este circuito (analógico) es más sensible que el de la imagen anterior para digital y debería usarse si queremos recoger susurros débiles o conectar el equipo a un magnetófono. Esto también debería usarse con detectores magnéticos (detector de metales, clavos, tubos) este tipo de detectores tienen una salida muy baja (puede ser de 1 a 5mV).
También pueden usarse, transductores como diafragmas piezo como micrófonos. Estos producen un sonido muy de "lata" (como hablar en una lata) pero esto no es importante en nuestro caso. La salida del mismo es como un micrófono electret (aproximadamente 10 a 30mV para el habla de nivel bajo y hasta 50mV para el habla fuerte).
Algunos diafragmas son muy sensibles mientras otros son muy insensibles. Se puede comprobar la sensibilidad con un PIEZO, simplemente silbando y viendo la forma de onda.
El diagrama de la imagen de la derecha muestra como conectarlo a un amplificador de transistor. Usando el programa anterior, silbar en el piezo y determinar si es suficiente con una sola etapa. Si no, puede agregarse una segunda etapa, exactamente como la etapa del micrófono. Los diafragmas que funcionan con tensiones bajas, como los de las tarjetas de música parecen muy sensibles. Otro modo de determinar si un piezo-eléctrico es sensible, es conectarlo a un CI de música, la salida que entrega, refleja su sensibilidad como un micrófono. El piezo tiene una ventaja sobre el electret, no necesita fuente de tensión.
La siguiente imagen muestra un circuito muy simple de interfase de un piezo con la entrada de un micro. El primer transistor se mantiene en "bajo" (saturación) y el segundo en "corte". Esto ofrece un consumo en corriente más bajo y produce una salida mayor. El segundo transistor permanece "apagado" mientras el primer transistor esté "conectado", el voltaje a través de sus terminales de emisor-colector estará sobre 0.35V, esto es una tensión baja para conectar la base del segundo transistor que ha de ser de 0.65V.
El primer transistor se conectará totalmente pero la corriente absorbida es muy baja y esto permite la forma de onda máxima que producirá el piezo para una baja intensidad dada. En otras palabras, el circuito pone sobre el piezo una ligera carga, cuando no hay señal presente y la salida del circuito es ALTA.
La señal del piezo, produce un tren impulsos de tensión máxima para igualar exactamente la forma de onda del piezo. Si se supervisa la salida del circuito se será capaz de detectar al instante la forma de onda que produce un BAJO. Las instrucciones del bucle (loop) hasta detectar un bajo se muestra debajo:
Lazo1 NOP BTFSC 06,0 ;probar GP0 para un Bajo GOTO Lazo1
El único problema es que con lazo1 se mantiene ocupado el micro para hacer otras operaciones. La solución es "saltar" la línea de entrada produciendo un programa que "vea" en la entrada sobre una base regular y si se detecta un bajo, se coloca un bit en el registro flag (bandera), la rutina principal mira constantemente la bandera del registro flag y se activará con un bit, esto requiere a cambio una operación de cancelar la bandera.
En la figura anterior, el acoplo de corriente alterna de la bobina al circuito de amplificación para que pueda ser determinada la zona de equilibrio del primer transistor por el valor de la resistencia de equilibrio de base. La bobina no se puede conectar directamente al transistor por la baja impedancia (resistencia) de la bobina que trastornará el equilibrio en la base. Si la bobina es conectada directamente a la base, el voltaje a través de la bobina será sólo de unos milivoltios y la bobina tendrá que producir 600mV o mas para activar el transistor.
Con este montaje 100mV o menos cortará el transistor (la forma de onda (mayor de 100mV) saturará el transistor durante "la mitad positiva" de la onda y lo cortará durante la otra mitad de la onda). Cualquier bobina de cable de cualquier tamaño, será conveniente hacer un colector de flujo magnético eficaz, este debería tener un campo magnético como una ferrita. Simplemente haga girar el eje a la mitad las RPM vueltas requeridas y si el circuito detecta el imán, la bobina es adecuada. Ninguna otra medida de impedancia o resistencia es necesaria. La salida del circuito es exactamente la misma en cuanto al diafragma piezo excepto que la frecuencia será bastante menos.
El sensor de luz más económico es la LDR, ésta tiene una resistencia de aproximadamente 100 ohmios en la luz brillante y más de 1M en la oscuridad, esto hace que pueda ser conectada a un amplificador de transistor como muestra la imagen.
Una bobina (choke) de 10mH (con ambos cables que salen del mismo lado del imán, puede pasar tan cerca como sea posible del núcleo), puede ser usado como una sonda magnética para detectar ejes rotativos, etc. el circuito del diagrama de abajo se conectará a un micro. Atar un imán fuerte a un eje rotatorio y poner el sensor magnético lo mas cerca posible del imán sin que toque, la amplitud de la forma de onda producida por la bobina va a depender del imán, la distancia entre el imán y la bobina, la velocidad del eje rotativo y el número de espiras de la bobina.
El potenciómetro cambiará la sensibilidad del LDR para que la salida cambie con la intensidad de luz deseada. Este circuito es sólo conveniente para grandes cambios de intensidad. Si se tiene que detectar un cambio muy tenue de la iluminación necesita un detector muy sensible.
Un dispositivo más sensible es un foto transistor darlington, como el MEL-12. Seguido de una etapa de amplificación y un potenciómetro ajustará el nivel de sensibilidad, como se muestra en la siguiente imagen.
Algunas formas de onda cambian muy lentamente, tanto que pueden tardar un día o más en crecer y decrecer. Estos niveles son clasificados como niveles de tensión y pueden ser producidos por termopares (un termopar produce una tensión debido a la temperatura en la unión (soldadura) entre dos metales diferentes en contacto el uno con el otro). Otros dispositivos entregan una tensión, por la existencia un voltaje y la resistencia del dispositivo, causando que cierto voltaje aparezca a través de él. Puede llamarse un principio de divisor de tensión. Entre los dispositivos que entregan un voltaje y la medida de tensión incluyen al termistor, el diodo (y el transistor). Esto es muy importante para determinar como es unido el dispositivo a un amplificador o a la entrada del micro.
Una vez que se tiene una forma de onda que dispara al micro (usar el programa de prueba dado al principio de este artículo para asegurarse que es detectado por el micro), puede conseguir el programa simplemente para detectar su presencia o determinar la frecuencia. La frecuencia puede ser determinada de dos modos:
1. Contar del número de altos [H] y bajos [L] en un segundo.
2. Contar del tiempo tomado para una transición H-a-L - medio ciclo.
El método 1 es un modo muy lento de obtener una frecuencia en ciclos por segundo. Un micro trabaja tan rápido que puede determinar cosas en una fracción de segundo.
El método 2 es mucho más rápido pero puede ser muy inexacto como el semiciclo es multiplicado, hasta conseguir el valor en Hertz. Para reducir la inexactitud se puede hacer cuentas de 10 o 100 ciclos y realizar una multiplicación. Una cuenta ciclos más alta reduce la inexactitud. Se requieren los pasos siguientes para producir el valor de una frecuencia (en Hertz). Refiérase al figura de abajo para la definición de un alto y bajo.
A. La entrada será reiniciada (loop) hasta detectar un ALTO.
B. El programa entonces salta a un retardo corto e incremento de "cuenta".
C. El micro vuelve del retardo e incremento de "cuenta".
D. El programa revisa la entrada para detectar un BAJO. Si no es detectado un BAJO el programa va a pasar a la B.
E. Cuando un BAJO es detectado el programa tiene un valor en el archivo de "cuenta" - esto es medio ciclo.
Por el aumento del número de instrucciones realizadas durante el incremento de "cuenta", el programa puede calcular la frecuencia de la forma de onda. A veces no se requiere una frecuencia en ciclos por segundo, se puede querer comparar una frecuencia con un valor en una tabla. Esto se llama detección de tono.
Para la mejor detección, el tono entrante debería ser de "buena calidad" es decir la amplitud completa y libre de ruido, entonces la determinación puede ser rápida. La figura muestra una forma de onda típica.
Hemos descrito cómo tratar la señal de audio de una charla, un silbido, el tono de un micrófono, del piezo y la detección magnética. Por otra parte, el microcontrolador también puede medir la resistencia de un resistor, el potenciómetro, LDR (Resistencia Dependiente de la Luz) el foto transistor, termistor y la capacitancia de un condensador. Pero todo lo que no se ha visto, talvez pronto lo abordemos. Capítulos sobre los siguientes temas, están siendo considerados y quizás estén disponibles pronto:
Medir temperatura.
Resistencia de un potenciómetro.
Capacitancia de a condensador.
También llamado descifrado de tono. La frecuencia de un tono entrante puede ser detectada y "señalada" cuando ésta es exactamente el tono correcto. Esto es práctico para detectar tonos de DTMF en la línea telefónica. De este modo DTMF tonos puede ser usado para conectar el equipo (como la iluminación, la calefacción, alarmas etc.). La exactitud del tono puede ser ajustada según el programa, lo es mejor permitir un margen de error entonces se puede garantizar que el tono será reconocido.