Como controlar reles com Joystick e arduino

 Ola pessoal neste próximo projeto iremos controlar um modulo rele de quatro canais com uma manete(modulo Joystick) , aquela mesma que tem nos vídeo games como xbox e playstation, o funcionamento se da pela seguinte maneira, toda vez que a manete e posicionada para um dos lados um dos rele e acionado e quando ela pressionada para baixo os quatro reles ligam simultaneamente.  sem mais vamos ao projeto.











Vamos agora as etapas de integração do Joystick com o Arduíno.
Você vai precisar de ;
-1x arduino
-1x modulo Joystick
-11x fios jumpers
1x modulo rele 4 canais

Esquema de conexão;




Esquema de conexão Joystick;



Esquema de conexão Modulo rele;



Copie o código fonte abaixo para seu Arduíno.





//-----------------------------------------Inicio do código-------------------------------------//

/* Conexões



 Eixo X  liga na entrada analogica A0 do arduino

 Eixo Y  liga na entrada analogica A1 do arduino

 Botao sw liga na entrada analogica A2 do arduino



*/







    //----------Var de armazenamento joystich---------------//

           int EixoX = 0; // Eixo X  

           int EixoY = 0; // Eixo Y  

          int BotaoZ = 0; // Botao Z  Var armazenamento

           

 //-------------Var LED---------------//



   



  int esquerda = 2; //Pino rele2 

  int superior = 3; //Pino rele4

  int direita = 4;  //Pino rele1  

  int inferior = 5; //Pino rele3

  int todos = 6;    //Pino liga todos os reles

   

   

  

   

 void setup() 

 {  

   

    Serial.begin(9600);  

    





 pinMode(esquerda,OUTPUT);  

 pinMode(superior,OUTPUT);  

 pinMode(direita,OUTPUT);  

 pinMode(inferior,OUTPUT);  

 pinMode(todos,OUTPUT);  

 }  

   

 void loop() 

 {  

   



   

   

 //As linhas abaixo apagam todos os leds  

 digitalWrite(esquerda,HIGH);  

 digitalWrite(superior,HIGH);  

 digitalWrite(direita,HIGH);  

 digitalWrite(inferior,HIGH);  

 digitalWrite(todos,HIGH);  

   

 //Le o valor do potenciometro ligado à porta analogica A0 - Eixo X  

 EixoX = analogRead(0);   

   

 //Mostra o valor do eixo X no serial monitor  

 Serial.print("X:");  

 Serial.print(EixoX , DEC);  

   

 //Testa o valor do Eixo X e aciona o led correspondente  

 if ( EixoX  > -1 &  EixoX  <200)  

 {  

  digitalWrite(inferior, LOW); ////Alavanca para inferior acende o rele3 

 }  

 if ( EixoX  >600 &  EixoX  <1025)  

 {  

  digitalWrite(superior, LOW); ////Alavanca posicionada para superior acende o rele4 

 }  

   

 //Le o valor do potenciometro ligado à porta analogica A1 - Eixo Y  

 EixoY= analogRead(1);  

   

 //Mostra o valor do eixo Y no serial monitor  

 Serial.print(" | Y:");  

 Serial.print(EixoY, DEC);  

   

 //Testa o valor do Eixo Y e aciona o led correspondente  

 if (EixoY > 20 & EixoY <200)  

 {  

  digitalWrite(direita, LOW); ////Alavanca para direita acende o rele1 

 }  

 if (EixoY > 600 & EixoY <1025)  

 {  

  digitalWrite(esquerda, LOW); //Alavanca para esquerda acende o rele2 

 }  

                                                                                               

 //Le o valor do Botao ligado à porta analogica A2 - Eixo Y  

  BotaoZ= analogRead(2);

 //Mostra o valor do Eixo Z no serial monitor  

 Serial.print(" | Z: ");  

 Serial.println(BotaoZ, DEC);  

   

 //Caso o botão Z seja pressionado, liga todos os reles   

 if (BotaoZ <10 )  

 {  

  digitalWrite(todos, LOW);  

  digitalWrite(esquerda,LOW); 

  digitalWrite(superior,LOW);  

  digitalWrite(direita ,LOW);

  digitalWrite(inferior ,LOW);  

  digitalWrite(todos ,LOW);

 }  

 delay(50);

} 





//-----------------------------------------Fim do código-------------------------------------//









Nenhum comentário:

Postar um comentário