Este tutorial faz parte de: Servomotores
Todos os vídeos relacionados a servomotores que abordam o tema estão listados aqui. Os links para outros vídeos encontram-se abaixo deste artigo.
Controlando um servo com um potenciômetro usando o Arduino
Neste tutorial, aprenderemos como controlar um servo motor usando um potenciômetro com um Arduino. O potenciômetro nos permite ajustar suavemente o ângulo do servo, nos dando controle em tempo real sobre sua posição. Ao final deste projeto, você terá uma montagem funcional que exibe o valor do potenciômetro e o ângulo correspondente do servo.

À medida que o potenciômetro é girado, o ângulo do servo motor muda de 0 a 180 graus. Usaremos a entrada analógica do Arduino para ler o valor do potenciômetro e então mapear esse valor para a faixa do servo usando uma fórmula simples. Este projeto é uma excelente forma de entender como funcionam as entradas analógicas e como controlar motores com elas (no vídeo em 01:45).
Hardware Explicado
Para este projeto, precisamos de uma placa Arduino, um servo motor e um potenciômetro. O potenciômetro atua como um resistor variável, fornecendo uma saída de tensão que corresponde à sua posição. Essa saída é lida pela entrada analógica do Arduino, permitindo-nos determinar o quanto girar o servo.
O servomotor é um tipo de motor que pode ser posicionado em um ângulo específico. Ele recebe um sinal de controle, que indica a posição desejada. O servo girará até esse ângulo com base no sinal de entrada que recebe do Arduino, tornando-o útil para várias aplicações, como robótica e dispositivos de controle remoto.
Detalhes da ficha técnica
| Fabricante | Vários |
|---|---|
| Número da peça | Servomotor padrão |
| Tensão lógica/E/S | 5 V |
| Tensão de alimentação | 4.8 - 6 V |
| Corrente de saída (por canal) | Até 1 A |
| Corrente de pico (por canal) | Até 2 A |
| Orientação sobre a frequência PWM | 50 Hz |
| limiares lógicos de entrada | 0.8 V (baixo) / 2.0 V (alto) |
| Queda de tensão / RDS(em condução)/ saturação | 0,5 V |
| Limites térmicos | 85 °C |
| Pacote | Tamanho padrão |
| Notas / variantes | Disponível em diferentes tamanhos e faixas de torque |
- Certifique-se de que a fonte de alimentação esteja dentro dos limites (4.8 - 6 V).
- Use um valor de resistência adequado para o potenciômetro (10 kΩ recomendado).
- Verifique a polaridade das conexões para evitar funcionamento invertido.
- Tenha cuidado com o calor; certifique-se de que o servo não esteja sobrecarregado.
- Mantenha a fiação curta para reduzir a interferência.
- Use capacitores de desacoplamento nas entradas de alimentação, se necessário.
- Verifique se o potenciômetro está corretamente conectado ao pino analógico A0.
Instruções de Fiação

Para ligar os componentes, conecte primeiro o potenciômetro. O pino do meio do potenciômetro deve ser conectado ao pino analógico.A0no Arduino. O pino esquerdo deve ir ao pino 5V no Arduino, e o pino direito deve ser conectado ao terra (GND).
Em seguida, conecte o servo motor. O fio de terra (normalmente preto ou marrom) do servo deve ser conectado ao GND do Arduino. O fio de alimentação (geralmente vermelho) deve ser conectado ao pino 5V do Arduino. Por fim, o fio de controle (frequentemente amarelo ou branco) deve ser conectado ao pino digital9no Arduino. Esta configuração permitirá que o Arduino controle o servo com base na posição do potenciômetro.

Exemplos de Código e Passo a Passo
Vamos dar uma olhada nas partes principais do código. Primeiro, incluímos a biblioteca Servo e criamos um objeto Servo:
#include
Servo myservo; // create servo object to control a servo
Este código inicializa o servo e o prepara para o controle. O próximo passo envolve ler o valor do potenciômetro:
int val = analogRead(potpin); // reads the value of the potentiometer
Aqui, o valor lido do potenciômetro é armazenado na variávelval. O valor estará entre 0 e 1023, correspondendo à posição do potenciômetro. Em seguida, mapeamos esse valor para a faixa do servo:
val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo
Esta linha converte o valor do potenciômetro para uma faixa adequada ao servo motor. Finalmente, definimos o servo para a posição calculada:
myservo.write(val); // sets the servo position according to the scaled value
Este comando instrui o servo a mover-se para o ângulo especificado com base na posição do potenciômetro. Você pode encontrar o código completo carregado abaixo do artigo.
Demonstração / O que Esperar
Quando você executar o programa, girar o potenciômetro ajustará o ângulo do servo suavemente. Você deve ver os valores do ângulo sendo exibidos no monitor serial enquanto gira o botão. Se o servo se comportar de forma inesperada, verifique a fiação, especialmente as conexões ao potenciômetro e ao servo (no vídeo em 04:30).
O servo deve responder imediatamente às alterações na posição do potenciômetro. Se notar algum atraso ou movimentos bruscos, considere reduzir o tempo de espera no código para melhorar a capacidade de resposta.
Este tutorial é parte de: Servomotores
- Controlando um servo com botões de pressão usando o Arduino
- Control a Servo Motor with a Push Button: Move Servo and Return SPB-1
- Control a Servo Motor with a Push Button: Move Servo in One Direction SPB-2
- Controlling a Servo Motor with a Push Button: Move Servo While Button Is Pressed (SPB-3)
- Controlando um servo com um potenciômetro e um LCD1602 usando Arduino
- Controlando Motores Servo Usando um Controle Remoto Infravermelho com Arduino
- Controle de Motor Servo Arduino Usando um Potenciômetro
- Controlando a Posição do Servo com Gestos de Mão para Arduino
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- How to Use Continuous 360° Servo with Arduino
- Código Arduino e vídeo para o controlador de servos PCA9685 de 16 canais e 12 bits V1
- Build an Arduino Servo Toggle Switch with a Push Button
Coisas que você pode precisar
-
AmazonasMotor servo na Amazonamzn.to
-
AliExpressCompre o motor Servo SG90 180 ou 360 no AliExpresss.click.aliexpress.com
Recursos e referências
-
ExternoServos SG90amzn.to
Arquivos📁
Nenhum arquivo disponível.