ESP8266 - Joystick - Servo Motor
Um joystick é equipado com dois potenciômetros perpendiculares entre si (conhecidos como eixo X e eixo Y). Esses potenciômetros enviam valores analógicos (valor X e valor Y) nos pinos VRX e VRY. Vamos usar esses valores analógicos para controlar de forma independente dois servo motores: o valor X controla o servo #1 e o valor Y controla o servo #2. Ao usar um kit pan-tilt, a combinação dos dois servo motores cria um movimento tridimensional.
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 a alavanca do joystick é solta, todos os valores voltam aos valores centrais e os servo motores voltam automaticamente para a posição central.
- Caso de uso 2: Use o joystick para comandar os servo motores (comandos para cima/para baixo/esquerda/direita)
- Quando a alavanca do joystick é empurrada para a esquerda, mova o servo motor #1 no sentido horário.
- Quando a alavanca do joystick é empurrada para a direita, mova o servo motor #1 no sentido anti-horário.
- Quando a alavanca do joystick é empurrada para cima, mova o servo motor #2 no sentido horário.
- Quando a alavanca do joystick é empurrada para baixo, mova o servo motor #2 no sentido anti-horário.
- Quando a alavanca do joystick é solta, 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.
- Módulo Analógico-Digital:
- Você pode usar um módulo externo Conversor Analógico-Digital (ADC), como o popular Módulo ADC ADS1115.
- Este módulo permite conectar vários dispositivos analógicos, expandindo os pinos de entrada analógica disponíveis.
- Solução de Multiplexação:
- Outra opção é implementar uma solução de multiplexação. Isso envolve alternar entre a leitura dos eixos X e Y do joystick usando o único pino de entrada analógica disponível.
- Essencialmente, você alterna entre as leituras de X e Y, obtendo a funcionalidade desejada por meio da multiplexação por divisão de tempo.
Hardware Necessário
Or you can buy the following kits:
| 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ê não conhece o joystick e o servo motor (incluindo pinagem, funcionamento, programação, etc.), os tutoriais a seguir podem ajudar:
Como o ESP8266 tem apenas um pino de entrada analógica, e o joystick precisa de dois, existem duas maneiras de resolver isso:
No entanto, as duas soluções podem ser um pouco caras e complicadas. Para uma abordagem mais simples, recomendamos fortemente usar o ESP32 em vez do ESP8266. Confira o tutorial ESP8266 - Joystick para uma implementação mais amigável.