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.