Como usar com Arduino – Módulo Joystick KY-023

Como usar com Arduino – Módulo Joystick KY-023

img00_como_usar_com_arduino_modulo_joystick_ky-023_manete_uno_mega_leonardo_nano

– Descrição:

O Módulo Joystick KY-023 foi desenvolvido com a finalidade de controlar dispositivos eletrônicos como uma espécie de controle de vídeo game. Muito conhecido como “botão analógico” pelos jogadores de vídeo game, o joystick permite controlar a movimentação do personagem e navegar entre menus. Em projetos eletrônicos, o mesmo possibilita controlar motores, robôs ou carrinhos.

– Especificações e características:

– Modelo: KY-023
– Tensão de operação: 3,3V – 5VDC
– Eixos analógicos: X e Y
– Botão: eixo Z

– Aplicações:

Projetos com Arduino ou outras plataformas microcontroladas em que a finalidade seja controlar um braço robótico, carrinho ou motores, por exemplo.

– Proposta da prática:

Utilizar o Módulo Joystick KY-023 em conjunto com o Arduino para acionamento dos eixos X, Y e Z (botão) através da movimentação do joystick. O eixo X (botão) é acionado quando há um pressionamento sobre o joystick. As informações de acionamento serão mostradas no monitor serial do ambiente de programação do Arduino.

– Lista dos itens necessários:

01 – Arduino com Cabo USB
01 – Módulo Joystick KY-023
05 – Cabos Jumper macho-fêmea

– Esquema de ligação da prática

img01_como_usar_com_arduino_modulo_joystick_ky-023_manete_uno_mega_leonardo_nano

– Tutorial de instalação e configuração do ambiente de programação do Arduino:

Arduino – Instalação e Configuração da IDE no Windows

– Código:

– Resultado final:

Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 5 comentários para esta postagem
  1. Emerson às 22:49

    olá boa noite, gostaria de saber se tem como eu separar o eixo X? tipo o esquerda e direita? Quero por o esquerda em potenciometro e o direita em outro, tem como fazer isso? modificando o código fonte?

  2. Thiago Martins às 19:36

    Olá,
    Primeiramente gostaria de parabenizar pela explicação, pois está bem completa. Entretanto para o meu projeto eu gostaria de transmitir o sinal do joystick ky-023 via RF-433mhz. Você sabe me explicar se existe e qual seriam os CIs para converter o sinal analógico do joystick para binário que será transmitido pelo RF.
    Pelo o que já li por ai os CIs HT12E e D servem apenas apara sinais digitais

  3. Luiz Marcelo às 13:22

    Eu acabei usando o código e dei uma melhorada nele para quem quiser!

    int eixo_X = A0; //PINO REFERENTE A LIGAÇÃO DO EIXO X
    int eixo_Y = A1; //PINO REFERENTE A LIGAÇÃO DO EIXO Y
    int botao = 37 ; //PINO REFERENTE A LIGAÇÃO NO PINO KEY (EIXO Z)

    void setup(){
    pinMode (botao, INPUT_PULLUP); //DEFINE A PORTA COMO ENTRADA / “_PULLUP” É PARA ATIVAR O RESISTOR INTERNO
    //DO ARDUINO PARA GARANTIR QUE NÃO EXISTA FLUTUAÇÃO ENTRE 0 (LOW) E 1 (HIGH)
    Serial.begin (9600); //INICIALIZA O MONITOR SERIAL
    }
    void loop(){

    if((analogRead(eixo_X)) == 0){ //SE LEITURA FOR IGUAL A 0, FAZ
    Serial.println(“PARA FRENTE”); //IMPRIME O TEXTO NO MONITOR SERIAL
    }else{
    if((analogRead(eixo_X)) == 1023){ //SE LEITURA FOR IGUAL A 1023, FAZ
    Serial.println(“PARA TRÁS”); //IMPRIME O TEXTO NO MONITOR SERIAL
    }else{
    if((analogRead(eixo_Y)) == 0){ //SE LEITURA FOR IGUAL A 0, FAZ
    Serial.println(“DIREITA”); //IMPRIME O TEXTO NO MONITOR SERIAL
    }else{
    if((analogRead(eixo_Y)) == 1023){ //SE LEITURA FOR IGUAL A 1023, FAZ
    Serial.println(“ESQUERDA”); //IMPRIME O TEXTO NO MONITOR SERIAL
    }else{
    if(digitalRead(botao) == LOW){ //SE LEITURA FOR IGUAL A HIGH, FAZ
    Serial.println(“BOTÃO PRESSIONADO”); //IMPRIME O TEXTO NO MONITOR SERIAL
    }else{
    if((analogRead(eixo_X)) > 530){ //SE LEITURA FOR IGUAL A HIGH, FAZ
    Serial.println(“UM POUCO PARA TRÁS”); //IMPRIME O TEXTO NO MONITOR SERIAL
    }else{
    if((analogRead(eixo_X)) < 490){ //SE LEITURA FOR IGUAL A HIGH, FAZ
    Serial.println("UM POUCO PARA FRENTE"); //IMPRIME O TEXTO NO MONITOR SERIAL
    }else{
    if((analogRead(eixo_Y)) 530){ //SE LEITURA FOR IGUAL A HIGH, FAZ
    Serial.println(“UM POUCO PARA ESQUERDA”); //IMPRIME O TEXTO NO MONITOR SERIAL
    }
    }
    }
    }
    }
    }
    }
    }
    }
    delay(50); //INTERVALO DE 50 MILISSEGUNDOS
    }

    • Gabriel às 18:40

      oi deu um problema eu fui carregar o codigo pro arduino e deu problema aqui:Serial.println(“UM POUCO PARA ESQUERDA”); //IMPRIME O TEXTO NO MONITOR SERIAL
      o que voçê acha que deu?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *