Prezados bom dia!

Estou tentando desenvolver meu TCC usando o Arduino Uno,vai ser um projeto muito ousado e gostaria de controlar ele via internet criando um WEB SITE alguem pode me ajudar

Exibições: 1056

Responder esta

Respostas a este tópico

boa tarde Eduardo!!!

Estou com um problemão no meu projeto.

Fiz um for para que o braço parasse na posição correta e de acordo com a subida do braço esse for ia decrementando perfeitamente. mas quando eu ligo o motor de 127v o arduino desliga o motor sem o sensor estar atuado. sem o motor funciona com o motor  não funciona (fiz uma interface de potencia para acionar os reles pois o motor tem que girar nos dois sentidos  )outro caso grave que esta acontecendo é que quando eu ligo o motor de 127v aparece um erro na porta serial e ai tem que tirar o cabo usb da uma confusão.

o erro esta dando quando ligo o motor que é no for de subida dali pra baixo ele nao funciona mais da erro na serial 

então volta a afirmar com o motor desligado o codigo funciona e quando ligo o motor o codigo nao funciona !!!

para melhor entendimento do projeto o site do tcc segue abaixo na parte de footos

www.leandroggrossi.wix.com/luizalfredo

caso possa me ajudar mais uma vez ficarei muito grato 

   #include <Servo.h>                           // BIBLIOTECA
   Servo servo1;                                // SERVO DA PINÇA
   Servo servo2;                                // SERVO DO GIRO DO BRAÇO
   void setup()                                 // INICIO DO PROGRAMA 
{
  
  servo1.attach(3);                             // output SERVO 1 LIGADO NA PORTA DIGITAL 
  servo2.attach(5);                             // output SERVO 1 LIGADO NA PORTA DIGITAL 
     
  pinMode(2, OUTPUT);                           // avanço de garra   (Define as portas como saída)
  pinMode(4, INPUT);                            // sensor  de avanço de garra 
  digitalWrite(4, HIGH);                        // sensor  de avanço de garra 
  
  pinMode(13, OUTPUT);                          // descida do braço
  pinMode(12, OUTPUT);                          // subida do braço
  pinMode(7, INPUT);                            // sendor de subida do braço
  digitalWrite(7, HIGH);                        // sendor de subida do braço
   
  
  pinMode(6, OUTPUT);                           // recuo de garra da garra
  pinMode(8, INPUT);                            // sensor  de recuo de garra de garra 
  digitalWrite(8, HIGH);                        // sensor  de recuo de garra de garra
  
  pinMode(10, OUTPUT);                          // movimento do braço na horizontal direita
  pinMode(9, OUTPUT);                           // movimento do braço na horizontal esquerda
  pinMode(11, INPUT);                           // sensor  da horintal da garra 
  digitalWrite(11, HIGH);                       
                          
 
   Serial.begin(4800);                                        // PORTA SERIAL (Definição da velocidade de transmissão)
                                                     //FIM DO FOR
}                                                             //FIM DO VOID SETUP

//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void loop() 
{
  
    int caso = Serial.read();
    
     switch (caso)                           //COMANDO DE SELEÇÃO DE MÚLTIPLA ESCOLHA (onde há um dado a ser avaliado. É representado por uma variável de memória.)
    {
 //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX    CASO 'Q' PRIMEIRA POSIÇÃO DE SUBIDA  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
       
      case 'q':    
     
   servo1.write(0);                                                      // servo do braço para 0 grau
   servo2.write(0);                                                     // servo da pinça para 0 grau
    Serial.println("    SERVO DA PINCA E DO BRACO A ZERO GRAU ");
   delay(2000);
    Serial.println("    PINCA ABERTA 20 GRAUS ");
   servo2.write(20);
   delay(2000);
   //----------- AVANÇO DE GARRA--------------------------------------------------------------------------
   
   Serial.println("AVANCO DE GARRA ");
   digitalWrite(2,HIGH);   // avanço de garra
   
   while (digitalRead(2)==HIGH)   // testa sensor de avanço de garra
       {
         while(digitalRead(4)==LOW) //testa condição do botao
         {
          digitalWrite(2,LOW);
         }
       }
        Serial.println("SENSOR ATUADO ");
   //------------------------------------------------------------------------
   delay(2000);
    Serial.println("CAPTURANDO OBJETO ");
   servo2.write(0);                               // fecha garra
   delay(2000);
   Serial.println("MOTOR DE SUBIDA ACIONADO ");
   //------------------------------------------------------------------------------------------------------------------------------------------
  
   digitalWrite(12,HIGH);                          // ajustando posição
   delay(500);
   digitalWrite(12,LOW); 
   delay(1000);   
   
   //----------------------------------------------------------RECUO DE GARRA----------------------------------------------------------------
   
    Serial.println("RECUO DE GARRA ");             // lendo dados da porta serial
   digitalWrite(6,HIGH);                           // recuo de garra
   while (digitalRead(6)==HIGH)                    // testa sensor de recuo de garra de garra
       {
         while(digitalRead(8)==LOW)                // testa condição do sensor
         {
          digitalWrite(6,LOW);
         }
       }
        Serial.println("SENSOR ATUADO ");
        
   //----------------------------------------------------------------------------------------------------------------------------------------
    delay(2000);
     Serial.println("MADANDO PINÇA PRA 90 GRAUS ");
    servo1.write(90);    //manda da garra para 90 graus
    delay(2000);
    
    //------------------------------------------------------LIGA MOTOR DE SUBIDA E DECREMENTA-------------------------------------------------------------
   
     Serial.println("PREPARANDO PARA LIGAR MOTOR");
     delay(3000);    
     digitalWrite(12,HIGH);
     Serial.println("MOTOR DE SUBIDA DO BRAÇO LIGADO ");               //  ESCREVENDO NA TELA 

  //tinha um for aqui...

 

Serial.println("PREPARANDO PARA LIGAR MOTOR");
     delay(3000);    
     digitalWrite(12,HIGH);
     Serial.println("MOTOR DE SUBIDA DO BRAÇO LIGADO ");               //  ESCREVENDO NA TELA 
     for(int i=0;i<3;i++)                                              // (CONTADOR INÍCIO;EXPR;INCREMENTO DO CONTADOR)Este tipo de comando de repetição deve ser utilizado                                                                                            quando se sabe a quantidade
     {        
      while(digitalRead(7) == HIGH);
      delay(3000);
      while(digitalRead(7) == LOW);
     }
     while(digitalRead(7) == HIGH); 
     Serial.println("SENSOR ATUADO "); 
     digitalWrite(12,LOW);  
     Serial.println("MOTOR DE SUBIDA DO BRAÇO DESLIGADO ");// ESCREVE A MENSAGEM NA TELA  
     

     
     //------------------------------------------------------------- BRAÇO NA HORIZONTAL NA ESQUERDA ----------------------------------------------------------
     
      delay(3000);
      Serial.println("BRAÇO MOVIMENTANDO NA HORIZOTAL (lado direito) ");
      delay(200);
      Serial.println("MANDANDO GARRA PARA 180 GRAUS ");  
      servo1.write(180);                                   // mandando a pinça pra 180 graus
      delay(2000);
      digitalWrite(10,HIGH);                               // liga motor da horizontal movimento da garra na horizontal
      delay(5000); 
       while (digitalRead(10)==HIGH)                      // testa a condiçao do botao
       {
         while(digitalRead(11)==LOW)
         {
          digitalWrite(10,LOW);
         }
       }
       
     //--------------------------------------------------------      AVANÇO DE GARRA------------------------------------------------------------------------------------------------------
       
       delay(2000);
      Serial.println("     AVANCO DE GARRA ");
      digitalWrite(2,HIGH);           // avanço de garra
      while (digitalRead(2)==HIGH)   // testa sensor de avanço de garra
       {
         while(digitalRead(4)==LOW) //testa condição do botao
         {
          digitalWrite(2,LOW);
         }
       }
        Serial.println("SENSOR ATUADO ");
     //------------------------------------------------------------------------------------------------------------------
     
      delay(2000);
       Serial.println("AJUSTANDO POSICAO ");
      digitalWrite(13, HIGH);   //ajustando a posiçao
      delay(200);
       digitalWrite(13, LOW);
       delay(2000);
       Serial.println("     DEIXANDO OBJETO ");
      servo2.write(20);    //abrindo garra
     
     //----------------------------------------------------------------recuo de garra-------------------------------------------------------------------------------
     
      delay(2000);
      Serial.println("    RECUO DE GARRA ");
      delay(200);
      digitalWrite(6,HIGH);                   // RECUO DA GARRA
      while (digitalRead(6)==HIGH)           // testa sensor de recuo de garra de garra
       {
         while(digitalRead(8)==LOW)      //testa condição do botao
         {
          digitalWrite(6,LOW);
         }
       }
       delay(200);
        Serial.println("    SENSOR ATUADO ");
        
     //movimento para a direita---------------------------------------------------------------------------------------------
     
      delay(2000);
      Serial.println("     BRAÇO MOVIMENTANDO NA HORIZOTAL (lado esquerdo) "); 
      digitalWrite(9,HIGH);                               // liga motor da horizontal movimento para a direita da garra na horizontal
      delay(5000); 
       while (digitalRead(9)==HIGH)                      // testa a condiçao do botao
       {
         while(digitalRead(11)==LOW)
         {
          digitalWrite(9,LOW);
         }
       }
        Serial.println("     SENSOR ATUADO ");
        servo1.write(90);   
      //--------------------------------------------------------------------------------------
       
     //------------------------------DESCIDA DO BRAÇO ----------------------------------------------------------------------
     
     Serial.println("PREPARANDO PARA LIGAR MOTOR");
     delay(3000);    
     digitalWrite(13,HIGH);
     Serial.println("MOTOR DE SUBIDA DO BRAÇO LIGADO ");               //  ESCREVENDO NA TELA 
     for(int i=0;i<3;i++)                                              // (CONTADOR INÍCIO;EXPR;INCREMENTO DO CONTADOR)Este tipo de comando de repetição deve ser utilizado                                                                                            quando se sabe a quantidade
     {        
      while(digitalRead(7) == HIGH);
      delay(3000);
      while(digitalRead(7) == LOW);
     }
     while(digitalRead(7) == HIGH); 
     Serial.println("SENSOR ATUADO "); 
     digitalWrite(13,LOW);  
     Serial.println("MOTOR DE SUBIDA DO BRAÇO DESLIGADO ");// ESCREVE A MENSAGEM NA TELA  
     
     
     Serial.println("xxxxxxxxxxxxxxxxxxxxxx FIM DO CICLO  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ");
     delay(500);
     Serial.println("_______________________________ENGENHARIA DE CONTROLE E AUTOMACAO_________________________________________________ ");
     
         
     
        break;

 

Oi Leandro...

parece sintoma de queda de energia no arduíno.. 

porém, você disse que "...sem o motor funciona com o motor  não funciona... "

imagino que você tenha desconectado a alimentação dos relês no arduíno... correto?

caso este "...sem o motor funciona..." seja apenas  retirando dos relês os fios de alimentação do motor, aí acho que deve-se dar uma verificada nesse esquema de ligação dos seus relês.

Não encontrei nenhum esquema de cirquito no seu site =(

abraço. 

blz Eduardo ontem conversei com um professor de eletrica e ele disse que pode ser retorno de corrente e que é pra nos colocarmos um acoplador óptico TIL 111 isolando todo o Arduino.e quanto aos relês eles não foram desligados. so desliguei a tensão 127v então quando o Arduino manda o sinal, o relê traca e código funciona... OBS: falta atualizar a parte elétrica mesmo no site... 

Mesmo assim vou testar com esse acoplador e dar uma verificada nos relês, como vc disse.

meu  caro muito obrigado. e ainda vou te dar noticias do trabalho. 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço