Introducción a los microcontroladores Octubre 2013 Arduino Uno Convertidor A/D
Convertidor A/D ATMEGA328P ⇨ 10 bits de resolucion, 0.5 LSB No lineal. ⇨ ±2 LSB Precisión absoluta. ⇨ 13 a 260 us de Tiempo de Conversión. ⇨ Hasta 15,000 Muestras por segundo en su Máxima Resolución. Hasta 76.9 kSPS. ⇨ 8 Canales de Entrada Multiplexados referenciados a GND. ⇨ 7 Canales de entrada diferenciales. ⇨ Rango de Voltaje de Entrada de 0 a Vcc. ⇨ Voltaje de referencia seleccionable a 2.56V. ⇨ Modo de conversión única o libre. ⇨ Inicio de Conversión del ADC por Auto disparo con fuente de interrupción. ⇨ Interrupción de Conversión Completa del ADC. ⇨ Cancelador de Ruido en Modo Sleep.
Convertidor A/D Arduino Uno ⇨ La placa Arduino Uno posee 6 canales (8 canales en el Mini y Nano y 16 en el Mega)conectados a un conversor analógico digital de 10 bits. Esto significa que convertirá tensiones entre 0 y 5 voltios a un número entero entre 0 y Esto proporciona una resolución en la lectura de: 5 voltios / 1024 unidades, es decir, voltios (4.9 mV)por unidad. El rango de entrada puede ser cambiado usando la función analogReference().
Convertidor A/D Arduino Uno ⇨ En el Arduino Uno el A/D trabaja con un reloj de 16Mhz que pasa por un pre-escalador de 128, donde cada conversión consume 13 ciclos de reloj. El tiempo de conversión sería=16Mhz/128/13 para un total de TconV= 9615 Hz aproximadamente. ⇨ Con la instrucción AnalogRead() el conversor tarda aproximadamente 100 microsegundos ( segundos) en leer una entrada analógica por lo que se puede llevar una tasa de lectura máxima aproximada de lecturas por segundo.
analogReference(tipo) ⇨ Descripción: Configura el voltaje de referencia usado por la entrada analógica.La función analogRead() devolverá un valor de 1023 para aquella tensión de entrada que sea igual a la tensión de referencia. Las opciones son: ⇨ DEFAULT: Es el valor de referencia analógico que viene por defecto que de 5 voltios en placas Arduino de y de 3.3 voltios en placas Arduino que funcionen con 3.3 voltios. ⇨ INTERNAL: Es una referencia de tensión interna de 1.1 voltios en el ATmega168 o ATmega328 y de 2.56 voltios en el ATmega8. ⇨ EXTERNAL: Se usará una tensión de referencia externa que tendrá que ser conectada al pin AREF. ⇨ Parámetros: tipo: El tipo de referencia que se desea usar (DEFAULT, INTERNAL, or EXTERNAL).
analogRead() ⇨ Sintaxis: analogRead(pin) ⇨ Parámetros: pin ⇨ pin: Indica el número del pin de la entrada analógica que deseamos leer (0 a 5 en la mayoría de las placas, de 0 a 7 en las Mini y Nano y de 0 a 15 en las Mega). ⇨ Pin: También se puede invocar cada canal con los Mnemonicos A0 hasta el A5 en el Arduino Uno. ⇨ Devuelve: int (0 a 1023)
Ejemplo