analogReadResolution()

De Arduino
Saltar a: navegación, buscar

Descripción

Configura el tamaño (en bits) del valor devuelto por analogRead(). Su valor predeterminado de ADC es 10 bits (devuelve valores entre 0~1023) para la compatibilidad con placas basadas AVR.

Nota: Extensión de la Analog API para los Arduino DUE y ZERO.


El DUE y el ZERO tienen capacidades ADC de 12 bits (devuelve valores entre 0~4095) a las que se puede acceder cambiando la resolución a 12.

Sintaxis

analogReadResolution(bits)

Parámetros

bits
determina la resolución (en bits) del valor devuelto por la función analogRead(). Puede establecer este entre 1 y 32. Se pueden ajustar resoluciones superiores a 12 pero los valores devueltos por analogRead() sufrirán una aproximación.

Retornos

Nada.

Advertencias

  • Si se establece el valor de analogReadResolution() a un valor más alto que las capacidades de la placa, el Arduino sólo informará en su mayor resolución rellenando los bits extra con ceros.
  • Por ejemplo: el uso de la Due o la Zero con analogReadResolution(16) le dará un número aproximado de 16 bits con los primeros 12 bits que contienen la lectura ADC real y los últimos 4 bits rellenados con ceros.
  • Si se establece el valor analogReadResolution() a un valor inferior a las capacidades de la placa, se descartarán los bits menos significativos adicionales leídos de la ADC.
  • El uso de una resolución de 16 bits (o cualquier resolución mayor que las capacidades reales del hardware) le permite escribir sketchs que manejan automáticamente los dispositivos con una resolución ADC mayor cuando éstos estén disponibles en las placas futuras sin cambiar una sola línea de código.

Ejemplo

void setup() {
   Serial.begin(9600); 
}

void loop() {
   //Lee la entrada A0 con resolución por defecto (10 bits)
   analogReadResolution(10);
   Serial.print("ADC 10 bit (default) : ");
   Serial.print(analogRead(A0));

   //Cambia la resolución a 12 bits y lee A0
   analogReadResolution(12);
   Serial.print(", 12 bit : ");
   Serial.print(analogRead(A0));

   //Cambia la resolución a 16 bits y lee A0
   analogReadResolution(16);
   Serial.print(", 16 bit : ");
   Serial.print(analogRead(A0)); 

   //Cambia la resolución a 8 bits y lee A0
   analogReadResolution(8);
   Serial.print(", 8 bit : ");
   Serial.println(analogRead(A0));

   delay(100);
}

Vea también

Referencias