Tutorial ESP32 26/55 - Usando Joystick com Arduino Tomando Ação | Kit IoT ESP32 da SunFounder

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.

esquema_do_joystick
ESP32-26-xy-esquema-do-joystick

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.

void setup() {
  Serial.begin(115200);
  pinMode(btn, INPUT);  
}

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
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
ESP32-26-xy-joystick-main
826-ESP32 Tutorial 26/55- Arduino code for XY Joystick
Idioma: C++
Copiado!

Recursos e referências

Arquivos📁

Nenhum arquivo disponível.