Arduino - Joystick - Servo Motor
Neste tutorial, vamos aprender a usar o Arduino e um joystick para controlar dois servo motores ou um kit pan-tilt com servos.
Um joystick tem dois potenciômetros embutidos, posicionados em ângulo reto entre si (chamados de eixo X e eixo Y). Esses potenciômetros fornecem os valores analógicos (chamados de valor X e valor Y) nos pinos VRX e VRY. Vamos usar esses valores analógicos para controlar dois servo motores de forma independente: o valor X controla o servo nº 1 e o valor Y controla o servo nº 2. No caso do kit pan-tilt, o movimento dos dois servo motores cria um movimento 3D.
Existem dois casos de uso:
- Caso de uso 1: Os servo motores giram de acordo com o movimento da alavanca do joystick:
- Os ângulos dos servo motores são proporcionais aos valores X e Y do joystick.
- Quando soltamos a alavanca do joystick ⇒ todos os valores voltam para os valores centrais ⇒ os servo motores voltam automaticamente para a posição central
- Caso de uso 2: usar o joystick para enviar comandos aos servo motores (comandos para cima/baixo/esquerda/direita)
- Quando a alavanca do joystick é empurrada para a esquerda, mova o servo motor nº 1 no sentido horário, passo a passo
- Quando a alavanca do joystick é empurrada para a direita, mova o servo motor nº 1 no sentido anti-horário, passo a passo
- Quando a alavanca do joystick é empurrada para cima, mova o servo motor nº 2 no sentido horário, passo a passo
- Quando a alavanca do joystick é empurrada para baixo, mova o servo motor nº 2 no sentido anti-horário, passo a passo
- Quando soltamos a alavanca do joystick ⇒ os servo motores não voltam para a posição central
- Se o joystick for pressionado (botão de pressão), os servo motores voltam para a posição central
- Conecte o Arduino ao PC pelo cabo USB
- Abra a Arduino IDE e selecione a placa e a porta corretas
- Copie o código acima e abra-o na Arduino IDE
- Clique no botão Upload na Arduino IDE para carregar o código no Arduino
- Abra o Serial Monitor
- Empurre o joystick em alguma direção
- Veja a rotação do servo motor
- Veja o resultado no Serial Monitor
- Vá até o ícone Libraries na barra lateral esquerda da Arduino IDE.
- Pesquise “ezButton” e encontre a biblioteca de botão da ArduinoGetStarted.com
- Clique no botão Install para instalar a biblioteca ezButton.
- Copie o código acima e abra-o na Arduino IDE
- Clique no botão Upload na Arduino IDE para carregar o código no Arduino
- Abra o Serial Monitor
- Empurre o joystick em alguma direção
- Veja a rotação do servo motor
- Veja o resultado no Serial Monitor
Vamos explorar o código para os dois casos de uso nas próximas partes.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Buy Note: For controlling multiple servo motors, use the PCA9685 16 Channel PWM Servo Driver Module to save MCU pins and simplify wiring.
Sobre o Joystick e o Servo Motor
Se você ainda não conhece o joystick e o servo motor (pinagem, como funcionam, como programar...), aprenda sobre eles nos seguintes tutoriais:
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Código Arduino
Código Arduino - Os servo motores giram de acordo com o movimento da alavanca do joystick
Passos Rápidos

Código Arduino - Usar o joystick para enviar comandos aos servo motores
Passos Rápidos

Explicação do Código
Leia a explicação linha por linha nas linhas de comentário do código-fonte!