Algumas partes deste site ainda não estão disponíveis no seu idioma. Estamos trabalhando para corrigir isso e pedimos desculpas por qualquer inconveniente.
Tutorial ESP32 26/55 - Usando Joystick com Arduino Tomando Ação | Kit IoT ESP32 da SunFounder
Neste tutorial, vamos aprender a interagir um joystick XY com o microcontrolador ESP32 da SunFounder, permitindo-nos detectar sua posição e tomar medidas com base em sua entrada. Também vamos integrar um buzzer que é ativado quando o joystick é movido para uma posição específica. Essa combinação nos permitirá criar projetos interativos que respondem à entrada do usuário em tempo real.
ESP32-26-xy-joystick-principal
O joystick XY fornece duas saídas analógicas correspondentes às posições X e Y e um interruptor que pode ser pressionado para acionar uma ação. Ao ler os valores do joystick, podemos controlar vários elementos em nosso projeto, como ativar um buzzer ou exibir valores na tela. Para entender completamente o processo, não esqueça de conferir o vídeo para obter mais insights (no vídeo em 00:00).
Hardware Explicado
Os principais componentes deste projeto incluem o microcontrolador ESP32, o joystick XY e um buzzer. O ESP32 é uma placa versátil que suporta Wi-Fi e Bluetooth, tornando-a ideal para projetos de IoT. O joystick XY consiste em dois resistores variáveis para os eixos X e Y, e um botão para entrada adicional.
O joystick emite sinais analógicos correspondentes à sua posição, que são lidos pelos pinos analógicos do ESP32. O botão pressionado fornece um sinal digital quando é apertado. O buzzer está conectado a um pino de saída digital no ESP32, permitindo que seja ativado ou desativado com base na posição do joystick.
Detalhes da Ficha Técnica
Fabricante
SunFounder
Número da peça
Módulo de Joystick XY
Tensão de operação
3,3 V - 5 V
Valor do Resistor
10 kΩ (cada eixo)
Corrente Máxima
20 mA
Tipo de Interruptor
Botão de pressão momentâneo
Dimensões
Aprox. 50 mm x 50 mm
Certifique-se de que o joystick esteja alimentado com 3,3 V para compatibilidade com o ESP32.
Use resistores de pull-up para o interruptor para evitar entradas flutuantes.
Conecte as saídas analógicas aos pinos ADC do ESP32 (34 para X, 35 para Y).
Use um mecanismo de debounce para o interruptor a fim de evitar acionamentos falsos.
Monitore os níveis de voltagem para garantir que permaneçam dentro dos limites seguros de operação.
Instruções de Fiação
ESP32-26-xy-joystick-wiring
Para conectar o joystick ao ESP32, comece ligando o pino de terra do joystick a um pino de terra no ESP32. Em seguida, conecte o pino VCC do joystick ao pino de 3,3 V do ESP32. O joystick possui dois pinos de saída analógica: conecte a saída do eixo X (etiquetada comoVRX) para fixar34no ESP32 e a saída do eixo Y (rotulada comoVRY) para fixar35.
Para a saída do interruptor, conecte o pino do interruptor ao pino33no ESP32. Este pino lerá a pressão do botão como uma entrada digital. Certifique-se de que as conexões estão seguras para evitar problemas intermitentes. Se a sua fiação diferir do vídeo (no vídeo às 02:30), adapte-se de acordo, seguindo os mesmos princípios para conexões analógicas e digitais.
Exemplos de Código e Passo a Passo
No texto, começamos definindo constantes para os pinos do joystick. Os identificadoresxAxis,yAxis, ebtnestão definidos para34,35, e33, respectivamente. Isso facilita a referência a esses pinos durante todo o programa.
#define xAxis 34
#define yAxis 35
#define btn 33
In thesetup()função, inicializamos a comunicação serial e definimos o modo do pino do botão como entrada. Isso prepara o ESP32 para ler dados do joystick e enviá-los para o monitor serial.
Dentro doloop(), lemos os valores analógicos para os eixos X e Y do joystick usandoanalogRead()e armazená-los emxValueeyValue. O estado do botão é lido usandodigitalRead()e armazenado embtnValuePor fim, imprimimos esses valores no monitor serial.
void loop() {
int xValue = analogRead(xAxis);
int yValue = analogRead(yAxis);
int btnValue = digitalRead(btn);
Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
delay(300); // Delay between reads
}
Esse loop atualiza continuamente os valores, fornecendo feedback em tempo real sobre o movimento do joystick e os pressionamentos de botões. Para o código completo, consulte o código completo carregado abaixo do artigo.
Demonstração / O que Esperar
Quando a configuração estiver completa e o código for carregado, o monitor serial deve exibir os valores de X e Y junto com o estado do botão. À medida que você move o joystick, os valores mudarão de acordo, refletindo sua posição. Pressionar o botão alternará seu estado entre alto e baixo.
Os erros comuns incluem fiações incorretas, que podem levar a entradas flutuantes ou à ausência de resposta do joystick. Certifique-se de que os pinos corretos estão sendo usados e de que os resistores pull-up estão implementados para o interruptor. Assista ao vídeo para demonstrações práticas desses comportamentos (no vídeo às 13:00).
Marcação de Vídeo
00:00 Início
1:47 Introdução ao Joystick XY
7:32 Medindo os valores do Joystick
8:40 Explicação da fiação
11:06 Código Arduino para Joystick com ESP32 explicado
14:43 Selecionando a placa ESP32 e a porta COM no Arduino IDE
16:24 Demonstração do uso simples do Joystick
19:20 Detectando a posição do código do joystick com o buzzer
21:16 Demonstração da detecção de posição
Imagens
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
826-ESP32 Tutorial 26/55- Arduino code for XY Joystick