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.

Hardware Required

1×Arduino UNO or Genuino UNO
1×Potentiometer
1×(Alternative) Potentiometer Kit
1×(Alternative) Potentiometer Module with Knob
1×Breadboard
1×Jumper Wires
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Recommended) Breadboard Shield For Arduino Uno
1×(Recommended) Enclosure For Arduino Uno
Disclosure: Some links in this section are Amazon affiliate links. If you make a purchase through these links, we may earn a commission at no extra cost to you.
Additionally, some links direct to products from our own brand, DIYables.

Wiring Diagram

Arduino Potentiometer Wiring Diagram

This image is created using Fritzing. Click to enlarge image

Arduino Code

int analogPin = A0; // terminal do meio de um potênciometro conectado ao pino analógico A0 // 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 }

Rotate the potentiometer and see the result on Serial Monitor

COM6
Send
0 0 126 281 517 754 906 1023 1023
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

For more detailed instruction, see Arduino - Potentiometer

※ 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.).

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit

※ OUR MESSAGES