analogReadResolution()

Description

analogReadResolution() es una extensión de la  Analog API para los Arduino Due y Zero.
Configura el tamaño (en bits) del valor devuelto por analogRead (). Su valor predeterminado es 10 bits (devuelve valores entre 0 y 1023) para la compatibilidad con placas basadas AVR.
El Due y el Zero tienen capacidades ADC de 12 bits a las que se puede acceder cambiando la resolución a 12. Esto devolverá los valores de analogRead () entre 0 y 4095.

Sintaxis

analogReadResolution(bits)

Parámetross

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. Véase la nota a continuación para más detalles.

Retornos

Ningubo.

Nota

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() {
  // abre la comunicación serie
  Serial.begin(9600); 
}

void loop() {
  // lee la entrada A0 con resolución por defecto (10 bits)
  // y envía la salida al monitor serie 
  analogReadResolution(10);
  Serial.print("ADC 10-bit (default) : ");
  Serial.print(analogRead(A0));

  // camabia 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));

  // una pequeña temporización para no saturar la conexión serie
  delay(100);
}

No hay comentarios:

Publicar un comentario