Esta página também está disponível em outros 1 idiomas.
Mudar idioma 

analogReadResolution()

[Zero, Due & MKR Family]

Descrição

analogReadResolution() é um extensão da API Analog para o Arduino Due, Zero e família MKR.

Configura o tamanho (em bits) do valor retornado por analogRead(). O padrão é 10 bits (retorna valores entre 0-1023) para compatibilidade com placas baseadas em microcontroladores AVR.

As placas Due, Zero e da família MKR possuem um conversor analógico digital (ADC) com capacidade 12-bits que pode ser accessado, em completude, mudando-se a resolução para 12. Isso fará com que os valores retornados por analogRead() estejam entre 0 e 4095.

Sintaxe

analogReadResolution(bits)

Parâmetros

bits: determina a resolução (em bits) dos valores retornados pela função analogRead(). Você pode configurar esse valor entre 1 e 32. Você pode escolher resoluções mais altas que 12, porém assim, valores retornados por analogRead() irão sofrer aproximação. Veja a nota abaixo para detalhes.

Retorna

Nada

Código de Exemplo

O código abaixo mostra como usar o conversor analógico digital com resoluções diferentes.

void setup() {
  // abre a conexão serial
  Serial.begin(9600);
}

void loop() {
  // lê o valor no pino A0 na resolução padrão (10 bits)
  // e o envia pela conexão serial
  analogReadResolution(10);
  Serial.print("ADC 10-bit (padrão) : ");
  Serial.print(analogRead(A0));

  // muda a resolução para 12 bits e lê o pino A0
  analogReadResolution(12);
  Serial.print(", 12-bit : ");
  Serial.print(analogRead(A0));

  // muda a resolução para 16 bits e lê o pino A0
  analogReadResolution(16);
  Serial.print(", 16-bit : ");
  Serial.print(analogRead(A0));

  // muda a resolução para 8 bits e lê o pino
  analogReadResolution(8);
  Serial.print(", 8-bit : ");
  Serial.println(analogRead(A0));

  // um pequeno delay para não enviar dados muito rapidamente para o Serial Monitor
  delay(100);
}

Notas e Advertências

Se você configurar o valor de analogReadResolution() para um valor maior que acapacidade de sua placa, o Arduino irá retornar apenas na sua resolução máxima, preenchendo os bits extras com zeros.

Por exemplo: usando-se o DUE com analogReadResolution(16) irá retornar um número 16-bit aproximado, com os primerios 12 bits contendo a leitura real do ADC e os últimos 4 bits preenchidos com zeros.

Se você configurar o valor de analogReadResolution() para um valor menor que acapacidade de sua placa, os bits menos significantes extras lidos do ADC serão descartados.

Usar uma resolução de 16 bits (ou qualquer resolução mais alta que as capacidades reais do hardware) permite escrever sketches que automaticamente suportam dispositivos com uma resolução do ADC mais alta quando estes estiverem disponíveis em placas futuras, sem a necessidade de se fazer mudanças no código.