Componentes · 3 min de leitura

O que é potenciômetro? Leitura analógica e controle com Arduino

O que é potenciômetro, como ele funciona e como ligar no Arduino? Potenciômetro linear vs logarítmico, o código B10K, leitura com analogRead e um exemplo de brilho de LED.

O potenciômetro é um resistor ajustável cuja resistência muda quando você gira o eixo. O botão de volume de um rádio, o dimmer de um abajur e os direcionais de um controle de videogame são todos potenciômetros. Nos projetos com Arduino, ele é o jeito mais fácil de receber um valor do usuário: você gira o botão e o Arduino lê um número entre 0 e 1023.

Potenciômetro
Potenciômetro rotativo: os dois terminais externos são as pontas do resistor fixo e o terminal do meio é o cursor móvel.

Como um potenciômetro funciona?

Dentro dele há uma trilha resistiva em forma de arco e um cursor que desliza sobre ela. A resistência entre os dois terminais externos é fixa (por exemplo, 10 kΩ). O terminal do meio está ligado ao cursor; quando você gira o eixo, o cursor se move pela trilha e a resistência até cada terminal externo muda. Coloque 5 V e GND nos terminais externos e você terá uma tensão entre 0 e 5 V no terminal do meio. Ou seja, o potenciômetro é um divisor de tensão ajustável.

Tipos de potenciômetro

TipoAparênciaUsado para
Potenciômetro rotativoEixo, 3 terminaisControle de volume, brilho e velocidade
Trimpot (trimmer)Pequeno, ajustado com chave de fendaValores ajustados uma vez e deixados assim (como o contraste do LCD)
Potenciômetro deslizanteDesliza por uma trilha retaMesas de som e painéis de controle
JoystickDois potenciômetros em umControle de dois eixos (X e Y)
A marcação B10K ou B103 indica um potenciômetro linear de 10 kΩ: o valor muda na proporção do giro. A letra A indica um potenciômetro logarítmico (de áudio). Para medição e controle com Arduino, escolha um potenciômetro linear (B).

Ligando um potenciômetro no Arduino

  1. Ligue um terminal externo ao 5V e o outro ao GND (trocá-los apenas inverte o sentido).
  2. Ligue o terminal do meio a uma entrada analógica, por exemplo o A0.
  3. Ligue um LED com um resistor de 220 Ω ao pino 9, que tem PWM.
  4. Carregue o código abaixo e abra o Monitor Serial; ao girar o botão, o valor e o brilho do LED mudam.
C++ (Arduino IDE)
1const int POT_PIN = A0;   // potansiyometre orta bacak / pot wiper
2const int LED_PIN = 9;    // PWM pini / PWM pin
3
4void setup() {
5  pinMode(LED_PIN, OUTPUT); // LED çıkış / LED output
6  Serial.begin(9600);       // seri monitör / serial monitor
7}
8
9void loop() {
10  int raw = analogRead(POT_PIN);              // 0–1023 oku / read 0–1023
11  int brightness = map(raw, 0, 1023, 0, 255); // PWM'e çevir / scale to PWM
12  analogWrite(LED_PIN, brightness);           // parlaklık / brightness
13  Serial.println(raw);                        // değeri yaz / print value
14  delay(20);
15}

A função map() converte um valor de uma faixa para outra, por exemplo, transformando uma leitura de 0–1023 em um valor PWM de 0–255 ou em um ângulo de servo de 0–180. Para ver a ideia do divisor de tensão em números, use a calculadora de divisor de tensão.

Faixa de leitura analógica por placa

PlacaResoluçãoFaixaFunção
Arduino Uno / Nano10 bits0–1023analogRead()
ESP3212 bits0–4095analogRead()
Raspberry Pi Pico12 bits (escalado para 16 bits)0–65535ADC.read_u16()
O ESP32 e o Pico funcionam com 3,3 V: ligue o terminal externo do potenciômetro ao 3,3 V, e não ao 5 V. No ESP32, só os pinos do ADC1 (GPIO 32–39) leem de forma confiável com o Wi-Fi ligado.

Erros comuns

  • Ligar o terminal do meio direto ao 5V ou ao GND: no fim do curso isso cria um curto-circuito e pode queimar o potenciômetro. A alimentação sempre vai nos terminais externos.
  • Valores oscilando: as leituras podem variar algumas unidades. Faça a média de várias leituras ou ignore mudanças pequenas.
  • Usar um potenciômetro logarítmico: com um do tipo A, o valor muda devagar no começo e rápido no fim; use o tipo B para um controle linear.
  • Ligar em um pino digital: o potenciômetro fornece um valor analógico, então ele precisa ir a uma entrada analógica como A0–A5.

Você encontra como definir o ângulo de um servo com um potenciômetro em O que é servo motor? e o básico sobre resistência em O que é resistor?.

Perguntas frequentes

Qual valor de potenciômetro devo comprar para o Arduino?

Um potenciômetro linear de 10 kΩ (B10K) é a escolha mais comum. Valores de 1 kΩ a 100 kΩ também funcionam; valores muito baixos consomem mais corrente e valores muito altos podem dar leituras com ruído.

Como identificar os terminais de um potenciômetro?

Segurando-o com o eixo virado para você, o terminal do meio é o cursor. A ordem dos terminais externos só decide para que lado você gira para o valor aumentar.

Por que a leitura não chega exatamente a 0 ou 1023?

A resistência de contato nas pontas e a tolerância de fabricação podem deslocar os valores extremos em algumas unidades. Deixar uma margem de 5–10 unidades no código resolve.

Joystick e potenciômetro são a mesma coisa?

Um joystick tem dois potenciômetros em ângulo reto e normalmente um botão. Cada eixo é lido em uma entrada analógica própria.

Ver todos os projetos
Uso de servo motor com potenciômetro
#36Iniciante
Premium

Uso de servo motor com potenciômetro

Conforme você gira o botão do potenciômetro, o braço do servo motor gira junto: uma extremidade do botão corresponde a zero grau, e a outra, a meia volta. O Arduino lê continuamente a posição do botão

4.6(37)
52
Brilho do LED com potenciômetro no ESP32 (analógico → PWM)
#115Intermediário
Premium

Brilho do LED com potenciômetro no ESP32 (analógico → PWM)

Neste projeto, controlamos o brilho de um LED de forma analógica com um potenciômetro. O pino ADC do ESP32 lê a tensão de 0-3,3V do potenciômetro e converte esse valor em um sinal PWM (modulação por largura de pulso), enviado ao LED. Assim, ao girar o potenciômetro, o brilho do LED aumenta e diminui gradualmente. Com Arduino Core 3.0+, você pode usar analogWrite() diretamente; no ESP32-S2/S3, a resolução do ADC é fixada em 12 bits.

4.5(19)
32
Sequencial de LEDs com velocidade ajustável
#7Intermediário

Sequencial de LEDs com velocidade ajustável

Seis LEDs acendem um após o outro, fazendo a luz parecer correr de uma ponta à outra. Ao girar o botão do potenciômetro, a velocidade muda na hora: para um lado, a luz corre rapidamente; para o outro,

4.6(72)
146
Efeito Knight Rider com LEDs e velocidade ajustável
#8Intermediário

Efeito Knight Rider com LEDs e velocidade ajustável

Uma luz percorre seis LEDs de uma ponta à outra, muda de direção e volta. Ao girar o botão do potenciômetro, você ajusta a velocidade na hora: em uma extremidade, a luz quase voa; na outra, avança dev

4.5(60)
120
Controle de LEDs com joystick
#59Intermediário
Premium

Controle de LEDs com joystick

Empurre a alavanca do joystick até o fim em qualquer direção e o LED correspondente acende: são quatro cores diferentes para direita, esquerda, cima e baixo. Ao soltar a alavanca, ela volta ao centro

4.7(50)
67
Luminária com mistura de cores e ESP32 (3 potenciômetros + LED RGB + OLED)
#138Avançado
Premium

Luminária com mistura de cores e ESP32 (3 potenciômetros + LED RGB + OLED)

Uma luminária inteligente que permite misturar a cor que você quiser girando três potenciômetros com o ESP32! Ao girar os potenciômetros de vermelho, verde e azul, o LED RGB de cátodo comum muda de cor em tempo real. O display OLED SSD1306 mostra os valores de cada cor na faixa de 0–255, barras de preenchimento e o código HEX da cor para a web, como #FF8040.

4.7(6)
10
Voltímetro digital com display LCD
#56Intermediário
Premium

Voltímetro digital com display LCD

Descubra a tensão de uma pilha ou de um adaptador de alimentação com um medidor feito por você. Um divisor formado por dois resistores reduz a tensão alta a um nível que a placa consegue ler, e o Ardu

4.5(27)
36