Ir ao conteúdo
  • Cadastre-se

Vinicius Martins Da Silva

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  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...