Como Conectar Um Joystick Ao Arduino

Como Conectar Um Joystick Ao Arduino
Como Conectar Um Joystick Ao Arduino
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.

É 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.

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.

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.

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.

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.

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.

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: