Como Conectar Um Joystick Ao Arduino

Índice:

Como Conectar Um Joystick Ao Arduino
Como Conectar Um Joystick Ao Arduino

Vídeo: Como Conectar Um Joystick Ao Arduino

Vídeo: Como Conectar Um Joystick Ao Arduino
Vídeo: Módulos para Arduino - Vídeo 07 - Módulo Joystick 2024, Marcha
Anonim

Há uma grande variedade de maneiras de transferir informações de uma pessoa para um microcontrolador ou computador, e uma delas é usando um joystick. Vamos ver como conectar um joystick analógico com dois eixos e um botão ao Arduino.

Joystick com dois eixos e um botão
Joystick com dois eixos e um botão

É necessário

  • - Arduino;
  • - joystick de dois eixos;
  • - 3 resistores com valor nominal de 220 Ohm;
  • - 1 RGB ou 3 LEDs convencionais.

Instruções

Passo 1

O joystick é um dispositivo conveniente e fácil de usar para transmitir informações. Existem muitos tipos de joysticks em termos do número de graus de liberdade, do princípio de leitura das indicações e das tecnologias utilizadas. Joysticks são mais frequentemente usados para controlar o movimento de quaisquer mecanismos, modelos controlados, robôs. O joystick analógico, que veremos hoje, é uma alça presa a uma junta esférica com dois eixos perpendiculares entre si. Quando o botão é inclinado, o eixo gira o contato móvel do potenciômetro, devido ao qual a tensão em sua saída muda. Além disso, o joystick analógico possui um botão de toque, que é acionado quando você pressiona a alavanca verticalmente.

Diagrama esquemático de joystick
Diagrama esquemático de joystick

Passo 2

Conecte o joystick de acordo com o diagrama abaixo. Conecte as saídas analógicas X e Y do joystick às entradas analógicas A1 e A2 do Arduino, a saída do botão SW à entrada digital 8. O joystick é alimentado por uma tensão de +5 V.

Diagrama de fiação do joystick para Arduino
Diagrama de fiação do joystick para Arduino

etapa 3

Para ver claramente como o joystick funciona, vamos escrever esse esboço. Vamos declarar os pinos, definir os modos de operação para eles. Observe que no procedimento setup (), definimos a entrada switchPin em um nível alto. Isso habilita o resistor pull-up embutido nesta porta. Se você não ligá-lo, quando o botão do joystick não for pressionado, a 8ª porta do Arduino ficará suspensa no ar e pegará os captadores. Isso levará a falsos positivos indesejados e caóticos.

No procedimento loop (), verificamos constantemente o estado do botão e o exibimos usando o LED na saída 13. Devido à entrada switchPin ser puxada para cima, o LED está constantemente ligado e, quando o botão é pressionado, ele apaga, e não vice-versa.

A seguir, lemos as leituras dos dois potenciômetros do joystick - a saída dos eixos X e Y. O Arduino tem um ADC de 10 bits, portanto, os valores lidos do joystick ficam na faixa de 0 a 1023. Na posição intermediária do joystick, como você pode ver na ilustração, os valores na região 500 estão aproximadamente no meio da faixa.

Um esboço para demonstrar o funcionamento do joystick
Um esboço para demonstrar o funcionamento do joystick

Passo 4

Normalmente, um joystick é usado para controlar motores elétricos. Mas por que não usá-lo para controlar o brilho de um LED, por exemplo? Vamos conectar um LED RGB (ou três LEDs comuns) às portas digitais 9, 10 e 11 do Arduino conforme o diagrama acima, sem esquecer, é claro, dos resistores.

Joystick e diagrama de fiação LED RGB para Arduino
Joystick e diagrama de fiação LED RGB para Arduino

Etapa 5

Mudaremos o brilho das cores correspondentes ao mudar a posição do joystick ao longo dos eixos, conforme mostrado na figura. Devido ao fato de que o joystick pode não ser centralizado com precisão pelo fabricante e ter o meio da escala não em torno de 512, mas de 490 a 525, o LED pode acender levemente mesmo quando o joystick está na posição neutra. Se você quiser que ele seja completamente desligado, faça as alterações apropriadas no programa.

Diagrama da distribuição de brilho dos canais R, G, B ao longo dos eixos X e Y
Diagrama da distribuição de brilho dos canais R, G, B ao longo dos eixos X e Y

Etapa 6

Com base no diagrama acima, vamos escrever um esboço do Arduino para controlar o brilho do LED RGB usando um joystick.

Primeiro, declararemos a correspondência de pinos e duas variáveis - ledOn e prevSw - para trabalhar com o botão. No procedimento setup (), atribua as funções aos pinos e conecte o resistor pull-up ao pino do botão com o comando digitalWrite (swPin, HIGH).

No loop () definimos o pressionamento do botão do joystick. Ao premir o botão, alternamos os modos de funcionamento entre o modo "lanterna" e o modo "música a cores".

No modo freeMode (), o brilho dos LEDs é controlado inclinando o joystick em diferentes direções: quanto mais forte for a inclinação ao longo do eixo, mais brilhante será a cor correspondente. Além disso, a transformação dos valores é assumida pela função de mapa (valor, deLower, deUpper, toLower, toUpper). A função map () transfere os valores medidos (de Baixo para Alto) ao longo dos eixos do joystick para a faixa de brilho desejada (para Baixo, para Alto). Você pode fazer o mesmo com operações aritméticas comuns, mas essa notação é muito mais curta.

No modo discoMode (), três cores alternadamente ganham brilho e se apagam. Para poder sair do loop quando o botão é pressionado, verificamos cada iteração para ver se o botão foi pressionado.

Sketch para controlar o brilho do LED usando um joystick analógico
Sketch para controlar o brilho do LED usando um joystick analógico

Etapa 7

O resultado é uma lanterna feita de um LED RGB de três cores, cujo brilho de cada cor é definido por meio de um joystick. E quando você pressiona o botão, o modo "música colorida" é ativado. Embora eu o use, pelo contrário, como uma luz noturna.

Assim, aprendemos como conectar um joystick analógico de dois eixos com um botão ao Arduino e ler as leituras dele. Você pode pensar e implementar um uso mais interessante do joystick do que nosso exemplo.

Recomendado: