ESP8266 - Potenciômetro
Este tutorial ensina você a usar o ESP8266 com um potenciômetro, também conhecido como pot, trimmer, resistor variável, reostato ou sensor de ângulo rotativo. Em detalhes, vamos aprender:
- Como o potenciômetro funciona.
- Como conectar um potenciômetro ao ESP8266.
- Como programar o ESP8266 para ler o valor do potenciômetro
- Como converter o valor lido para outro valor, como tensão, ângulo do servo motor, velocidade do motor, brilho do LED...
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Potenciômetro
Um potenciômetro rotativo também é conhecido como pot, trimmer, resistor variável, reostato ou sensor de ângulo rotativo. Ele é usado para ajustar manualmente o valor de alguma coisa. Alguns exemplos são o volume de um aparelho de som, o brilho de uma lâmpada e o nível de zoom de um osciloscópio.

A Pinagem do Potenciômetro
Um potenciômetro normalmente tem três pinos:
- O pino GND deve ser conectado ao terra (0V).
- O pino VCC deve ser conectado à fonte de tensão (5V ou 3.3V).
- O pino de saída envia a tensão para o pino de entrada do Arduino.

※ Nota:
Os pinos GND e VCC podem ser trocados.
Como Funciona
A rotação do eixo do potenciômetro pode ir de 0°, que é a posição mais próxima do GND, até um ângulo máximo, que é a posição mais próxima do pino VCC, chamado de ANGLE_MAX.
※ Nota:
O valor de ANGLE_MAX é determinado pelo fabricante. Em geral, não precisamos nos preocupar com esse valor, a menos que estejamos calculando um ângulo de rotação (veja a seção de casos de uso).

O princípio de funcionamento:
- Um usuário gira o eixo do potenciômetro
- ⇒ O ângulo do potenciômetro muda
- ⇒ A resistência do potenciômetro muda
- ⇒ A tensão no pino de saída do potenciômetro muda
- ⇒ O valor analógico lido pelo ESP8266 muda
ESP8266 - Potenciômetro Rotativo
Alguns dos pinos do ESP8266 são capazes de funcionar como entrada analógica. Esses pinos de entrada analógica convertem a tensão (variando de 0v a VCC) em valores inteiros (de 0 a 1023), chamados de valor ADC ou valor analógico.
Podemos conectar um pino de saída do potenciômetro a um pino de entrada analógica. Isso nos permite ler o valor analógico do pino e convertê-lo em um valor com significado.
O valor que o ESP8266 recebe não é um ângulo nem uma tensão; é um valor inteiro que varia de 0 a 1023.
Depois de obtermos o valor inteiro do pino de entrada analógica, podemos reescalar esse valor para outro. Vamos considerar as aplicações.
Casos de Uso
- Reescalar para o ângulo do potenciômetro.
- Reescalar para a tensão do potenciômetro.
- Reescalar para um valor controlável, como o volume de um aparelho de som, o brilho ou a velocidade de um motor DC - este é o caso de uso mais comum.
Reescalar o Intervalo
| DE | PARA | |||
|---|---|---|---|---|
| Ângulo | girado pelo usuário | 0° | → | ANGLE_MAX |
| Tensão | do pino do potenciômetro | 0V | → | VCC |
| Valor ADC | lido pelo Arduino | 0 | → | 1023 |
| Outro valor | convertido pelo Arduino | VALUE_MIN | → | VALUE_MAX |
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.
Como Programar para o Potenciômetro
- Acesse o pino de saída do potenciômetro com analogRead() e leia o valor do pino de entrada.
- Use a função map() para ajustar o ângulo do potenciômetro.
- Ajuste a tensão para o nível do potenciômetro.
- Reescale o valor para algo que possa ser controlado, como o volume de um aparelho de som, o brilho ou a velocidade de um motor DC.
- Por exemplo, podemos ajustar o brilho de um LED por meio de reescala. Conforme indicado em , o brilho do LED pode ser regulado com um valor PWM que varia de 0 (completamente apagado) a 255 (totalmente aceso). Assim, podemos mapear o valor analógico para o brilho do LED (de apagado até o mais brilhante) assim:
Se você deseja ajustar o LED de uma luz noturna fraca até o brilho máximo,
※ Nota:
A função map() se limita a reescalar um valor analógico para o tipo int ou long. Se o valor controlável for do tipo float, a função floatMap() deve ser usada no lugar de map().
Código ESP8266
Passos Rápidos
Para começar com o ESP8266 no Arduino IDE, siga estes passos:
- Confira o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Faça a ligação dos componentes conforme mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Copie o código e abra-o no Arduino IDE.
- Depois de aberto, pressione o botão Upload para transferir o código para o ESP8266.

- Abra o Serial Monitor.
- Gire o potenciômetro.
- Confira o resultado no Serial Monitor.
※ Nota:
Este tutorial usa a função analogRead() para obter dados de um ADC (Conversor Analógico-Digital) conectado a um sensor ou a outra peça. O ADC do ESP8266 funciona bem em projetos nos quais você não precisa de leituras muito precisas. Mas lembre-se: o ADC do ESP8266 não é muito preciso para medições detalhadas. Se o seu projeto precisa ser muito preciso, você pode usar um ADC separado, como o ADS1115, com o ESP8266, ou usar um Arduino como o Arduino Uno R4 WiFi, que tem um ADC mais confiável.
Vídeo
Desafie-se
Use o potenciômetro para realizar uma das seguintes tarefas:
- Ajustar a posição do servo motor. Dica: Confira arduino - Servo Motor.
- Modificar o brilho do LED. Dica: Confira ESP8266 - Fade Led.
Conhecimento Adicional
- Os pinos GND e VCC podem ser trocados, sem nenhuma convenção específica. Tudo o que você precisa ter em mente é que o valor da tensão no pino de saída será invertido quando esses pinos forem trocados.