- Modulo Joystick Keyes
- Arduino UNO ( ou outro modelo )
- BreadBoard ( Qualquer tamanho )
- Cabos e Jumper para realizar as ligações
Passo a passo:
O pino responsável pelo Eixo Y deve ser ligado em uma porta analogica do Arduíno;
O pino "-" ou GND deve corresponder a porta GND do UNO;
O pino "+" ou PWR deve ser conectado a porta 5V;
O Eixo X não sera utilizado, portanto não há necessidade de conecta-lo;
O pino B ou Button, é utilizado para o botão de pressão do Joystick, nesse projeto não há necessidade de usar-lo;
O pino B ou Button, é utilizado para o botão de pressão do Joystick, nesse projeto não há necessidade de usar-lo;
Sketch:
#include <Servo.h> //biblioteca para controle de servo motores
Servo servo1; // nomeia uma variável para ser servo motor
int port; // variavel que recebera dados do joystick
void setup(){
servo1.attach(7); //diz que o servo1 esta conectado a porta digital 7
servo1.write(90); //servo1 começa em posição 90 graus
}
void loop(){
port = analogRead(5); //port recebe dados do joy
port = map(port,0,1023,0,180); //a rotina map, mapeia os dados (Quase uma regra de 3)
servo1.write(port); // servo1 se movimenta com os dados já mapeados do joystick
delay(15); //um pequeno atraso na progamação para tornar o controle "mais humano"
}
Observação: Note que a função analogRead retorna valores de 0 a 1023 e o nosso servo se movimenta de 0 a 180 graus (alguns de 0 a 360), servo motores apenas são controlados pela quantidade de graus, portanto deve se diminuir o intervalo gerado por analogRead, nesses casos deve ser utilizada a função map.
Resultado final: