Ir ao conteúdo
  • Cadastre-se

Vinicius Martins Da Silva

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

posts postados por Vinicius Martins Da Silva

  1. Olá, sou completamente novo na área e essa e minha primeira programação completamente original, poderiam me afirmar se há erros muito graves, e o que eu poderia fazer para consertar, já que na simulação no Proteus sempre ocorrem problemas.

     

     

     //Definicoes de Sistema
    #define B1       RA0_bit
    #define B2       RA1_bit
    #define B3       RA2_bit
    #define B4       RA3_bit
    #define B5       RA4_bit
    #define B6       RA5_bit

    #define MotorCarEsq  RB0_bit
    #define MotorCarDir  RB1_bit

    #define MotorEstEsq  RB2_bit
    #define MotorEstDir  RB3_bit

    #define PrimEntrPasso RC0_bit
    #define SeguEntrPasso RC1_bit
    #define TercEntrPasso RC2_bit
    #define QuarEntrPasso RC3_bit

    #define FimCurso1     RD0_bit
    #define FimCurso2     RD1_bit
    #define FimCurso3     RD2_bit
    #define FimCurso4     RD3_bit

    void motorcarrinho();
    void motorestrutura();
    void motorpasso();


     //Inicializacao dos Pinos
    void main() {
         //PINOS A
         PORTA = 0;
         TRISA = 0b11111111;

         //PINOS B
         PORTB = 0;
         TRISB = 0b00000000;

         //PINOS C
         PORTC = 0;
         TRISB = 0b00000000;

         //PINOS D
         PORTD = 0;
         TRISD = 0b11110000;
         //A/D
         ADCON1 = 0;
          
          //Voids do programa
          while(1)
          {
          void motorcarrinho();
          void motorestrutura();
          void motorpasso();
          }
          


    }

    //Controle do motor do carrinho

    void motorcarrinho()
      {
        if (B1 == 1 && FimCurso1 == 0)
        {
          MotorCarEsq = 1;
          MotorCarDir = 0;
          MotorEstEsq = 0;
          MotorEstDir = 0;
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
        }
        else
        {
             MotorCarEsq = 0;
        }
        if (B2 == 1 && FimCurso2 == 0)
        {
          MotorCarDir = 1;
          MotorCarEsq = 0;
          MotorEstEsq = 0;
          MotorEstDir = 0;
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
        }
        else
        {
             MotorCarDir = 0;
        }
      }
    //Controle do motor da estrutura
    void motorestrutura()
      {
        if (B3 == 1 && FimCurso3 == 0)
        {
          MotorCarDir = 0;
          MotorCarEsq = 0;
          MotorEstEsq = 1;
          MotorEstDir = 0;
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
        }
        else
        {
          MotorEstEsq = 0;
        }
        if (B4 == 1 && FimCurso4 == 0)
        {
          MotorCarDir = 0;
          MotorCarEsq = 0;
          MotorEstEsq = 0;
          MotorEstDir = 1;
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
        }
        else
        {
          MotorEstDir = 0;
        }
      }

    adicionado 15 minutos depois

    Só modificando, eu resolvi ainda colocar um motor de passo usando o clock interno do PIC, aliás estou utilizando o PIC 16f887a.

     //Definicoes de Sistema
    #define B1       RA0_bit
    #define B2       RA1_bit
    #define B3       RA2_bit
    #define B4       RA3_bit
    #define B5       RA4_bit
    #define B6       RA5_bit

    #define MotorCarEsq  RB0_bit
    #define MotorCarDir  RB1_bit

    #define MotorEstEsq  RB2_bit
    #define MotorEstDir  RB3_bit

    #define PrimEntrPasso RC0_bit
    #define SeguEntrPasso RC1_bit
    #define TercEntrPasso RC2_bit
    #define QuarEntrPasso RC3_bit

    #define FimCurso1     RD0_bit
    #define FimCurso2     RD1_bit
    #define FimCurso3     RD2_bit
    #define FimCurso4     RD3_bit

    #define delay (clock = 4000000)


    void motorcarrinho();
    void motorestrutura();
    void motorpasso();


     //Inicializacao dos Pinos
    void main() {
         //PINOS A
         PORTA = 0;
         TRISA = 0b11111111;

         //PINOS B
         PORTB = 0;
         TRISB = 0b00000000;

         //PINOS C
         PORTC = 0;
         TRISB = 0b00000000;

         //PINOS D
         PORTD = 0;
         TRISD = 0b11110000;
         //A/D
         ADCON1 = 0;
          
          //Voids do programa
          while(1)
          {
          void motorcarrinho();
          void motorestrutura();
          void motorpasso();
          }

    }

    //Controle do motor do carrinho

    void motorcarrinho()
      {
        if (B1 == 1 && FimCurso1 == 0)
        {
          MotorCarEsq = 1;
          MotorCarDir = 0;
          MotorEstEsq = 0;
          MotorEstDir = 0;
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
        }
        else
        {
             MotorCarEsq = 0;
        }
        if (B2 == 1 && FimCurso2 == 0)
        {
          MotorCarDir = 1;
          MotorCarEsq = 0;
          MotorEstEsq = 0;
          MotorEstDir = 0;
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
        }
        else
        {
             MotorCarDir = 0;
        }
      }
    //Controle do motor da estrutura
    void motorestrutura()
      {
        if (B3 == 1 && FimCurso3 == 0)
        {
          MotorCarDir = 0;
          MotorCarEsq = 0;
          MotorEstEsq = 1;
          MotorEstDir = 0;
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
        }
        else
        {
          MotorEstEsq = 0;
        }
        if (B4 == 1 && FimCurso4 == 0)
        {
          MotorCarDir = 0;
          MotorCarEsq = 0;
          MotorEstEsq = 0;
          MotorEstDir = 1;
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
        }
        else
        {
          MotorEstDir = 0;
        }
      }
    void motorpasso()
      {
        if (B5 == 1)
        {
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 1;
          
          delay_ms (100);
          
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 1;
          QuarEntrPasso = 0;
          
          delay_ms (100);
          
          PrimEntrPasso = 0;
          SeguEntrPasso = 1;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
          
          delay_ms (100);
          
          PrimEntrPasso = 1;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
          
        }
        else
        {
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
        }
        if (B6 == 1)
        {
          PrimEntrPasso = 1;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
          
          delay_ms (100);
          
          PrimEntrPasso = 0;
          SeguEntrPasso = 1;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
          
          delay_ms (100);
          
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 1;
          QuarEntrPasso = 0;
          
          delay_ms (100);
          
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 1;
          
        }
        else
        {
          PrimEntrPasso = 0;
          SeguEntrPasso = 0;
          TercEntrPasso = 0;
          QuarEntrPasso = 0;
        }
      }
        

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!