analogRead()

Descrição

Lê o valor de um pino analógico especificado. A placa Arduino possui um conversor analógico-digital 10 bts de 6 canais (8 canais nos Mini e Nano, 16 no Mega, 7 canais em placas MKR). Isso significa que este irá mapear tensões entre 0 e a tensão operacional (5V or 3.3V) para valores inteiros entre 0 e 1023. No Arduino UNO, por exemplo, isso permite uma resolução entre leituras de: 5 volts / 1024 unidades, ou .0049 volts (4.9 mV) por unidade. Veja a tabela abaixo para os pinos utilizáveis, tensão de operação e resolução máxima para algumas placas Arduino.

O intervalo de entrada pode ser mudado atrvés da função analogReference(), enquanto a resolução pode ser mudada (apenas nas placas Zero, Due e MKR) usando-se analogReadResolution().

Em placas baseadas em microcontroladores AVR (UNO, Nano, Mini, Mega), ler um valor analógico leva em torno de 100 microssegundos (0.0001 s), então a taxa de leitura máxima é aproximadamente 10,000 leituras por segundo.

Board Operating voltage Usable pins Max resolution
Uno 5 Volts A0 to A5 10 bits
Mini, Nano 5 Volts A0 to A7 10 bits
Mega, Mega2560, MegaADK 5 Volts A0 to A14 10 bits
Micro 5 Volts A0 to A11[1] 10 bits
Leonardo 5 Volts A0 to A11[1] 10 bits
Zero 3.3 Volts A0 to A5 12 bits[2]
Due 3.3 Volts A0 to A11 12 bits[2]
MKR Family boards 3.3 Volts A0 to A6 12 bits[2]
  • [1]: A0 through A5 are labelled on the board, A6 through A11 are respectively available on pins 4, 6, 8, 9, 10, and 12
  • [2]: The default analogRead() resolution for these boards is 10 bits, for compatibility. You need to use analogReadResolution() to change it to 12 bits.

Sintaxe

analogRead(pino)

Parâmetros

  • pino: o nome do pino de entrada analógica que se quer ler (A0 a A5 na maioria das placas, A0 a A6 em placas MKR, A0 a A7 no Mini e Nano, A0 a A15 no Mega).

Retorna

A leitura analógica no pino (int). No entanto esta é limitada a resolução do conversor analógico digital (0-1023 para 10 bits ou 0-4095 para 12 bits).

Código de Exemplo

O código abaixo lê o valor de um pino de entrada analógica e mostra seu valor na porta serial.

int analogPin = A3; // terminal do meio de um potênciometro conectado ao pino analógico 3 // terminais mais externos são conectados um no ground e o outro em +5V int val = 0; // variável para guardar o valor lido void setup() { Serial.begin(9600); // configura a porta serial } void loop() { val = analogRead(analogPin); // lê o pino de entrada Serial.println(val); // imprime o valor na porta serial }

※ Notas e Advertências:

Se o pino de entrada analógica não estiver conectado a nada, o valor retornado por analogRead() irá flutuar baseado numa gama de fatores (ex. o valor de outros pinos analógicos, quão próxima suu mão está da placa, etc.).

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.