analogReadResolution()

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 esccrever sketches que automaticamente suportam dispositivos com uma resolução do ADC mais alta quando estes estiverem disponíveis em palcas futuras, sem a necessidade de se fazer mudanças no código.
Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.