sábado, 19 de septiembre de 2015

Conversión analógica digital - ADC - Codificación binaria de la señal

Conversión analógico digital

Una vez aclaradas las diferencias básicas entre la tecnología analógica y la digital,  cómo muestrear la señal analógica,  y cómo cuantificarla, veamos ahora cómo se efectúa el último paso, el de la codificación binaria de la señal.

Como vimos en la primera entrada, nuestro Arduino, tiene, como cualquier sistema físico, unos recursos limitados con los que procesar la información, de modo que es incapaz de memorizar todas las variaciones de cualquier señal a lo largo de todo los instantes de tiempo. Para ello, emplea el sistema de muestreo que vimos en el primer paso. Es el equivalente a lo que se hace en el cine, cuando se toma 24 fotos por segundo cuando se rueda una película y eso nos crea la ilusión, cuando se muestran uno tras otro rápidamente, de ver un movimiento fluido y natural.

Luego vimos que además de esta limitación en la cantidad de "fotos" que puede tomar por segundo, tenía la limitación de que no puede medir todos los posibles valores que la señal tuviera en el instante de la "captura" y para hacer estas mediciones más rápidas, los resultados se aproximan a una serie de posibles resultados discretos. Es lo que llamamos cuantización de la señal.


Si seguimos con el símil del cine, es como si nuestra cámara cuando revelara las fotos solo imprimiera un conjunto sólido de colores fijos: todo negro, todo blanco, todo amarillo, todo rojo, .... Por lo que cualquier escena sería simplificada al color fundamental más abundante en la imagen. A fin de cuentas es el modo en cómo se procesan las imágenes digitales. Pero para permitirnos identificar nos solo colores sino también formas, se trocea la imagen en pequeños puntos llamados pixeles. La suma de todos ellos en la pantalla, nos crea la sensación de estar presenciando una imagen real, aunque solo es una matriz gigantesca de puntos de colores concretos.

En el tercer y último  paso que realiza el Conversor Analógico Digital ADC (Analog-to-Digital Converter - ADC en inglés), veremos como estos valores numéricos discretos son a su vez convertidos al sistema binario.

1.- Muestreo (ver entrada)
2.- Cuantización de la señal (ver entrada)
3.- Codificación binaria de la señal

Recordemos que un sistema binario, cada valor numérico tiene su traducción en ceros y unos. Veamos el ejemplo de como traduciríamos los 256 primeros números (rango de 0 a 255).




Pues  bien con este traductor en la mano, los valores cuantizados obtenidos tras el proceso de muestreo se convertirían en cadenas de ceros y unos. Que es el único idioma que la electrónica digital es capaz de entender.

Y de este modo una señal analógica con infinitos valores intermedios distribuida sobre un continuo infinito de instantes de tiempo, quedaría para nuestro Arduino traducida en una secuencia finita de valores binarios como los que se presentan en la siguiente imagen.



En la próxima entrada veremos un ejemplo de cómo Arduino usa lo que hemos visto con las señales eléctricas que recibe por sus pines analógicos.

Y ya sabéis, si tenéis alguna sugerencia o duda, no tenéis más que mandarnos un correo a


e intentaremos responder a vuestra pregunta lo antes que podamos. 

2 comentarios:

  1. Hombre, primero que todo excelente, yo estoy apenas incursionando en esto del arduino, tengo un proyecto en mente y apenas me estoy llenando de información, trabajo en seguridad electronica y me gustaria que me ayudara indicandome si conoce como capturar el video de una camara analoga de las que se usan normalmente en seguridad y/o CCTV, si solo lo hace el arduino o debo trabajar con un programa externo conectado al arduino y que procese el video, como dije apenas empiezo a encontrar informacíon y me seria de mucha ayuda lo que me pueda contar, muchas gracias

    ResponderEliminar
    Respuestas
    1. Hola Miguel, creo que aunque con el shield ArduCAM puedes gestionar eventos que graben fotos una tarjeta SD (http://www.arducam.com/tutorial), el micro del Arduino no es capaz de procesar señales de video de forma activa. Si yo fuera a hacer algo parecido a lo que comentas, posiblemente empezaría usando un sistema basado por ejemplo en Raspberry. Existen muchas alternativas pero posiblemente sea un buen punto de partida teniendo en cuenta que Raspberry también tiene una comunidad muy activa dando soporte.

      Eliminar