Ir ao conteúdo
  • Cadastre-se

Tota27

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

0
  1. então isadora, meu proposito é fazer uma maquina de fumaça ficar girando, mas de um ponto A até um ponto B, no começo coloquei botões (muito obg pela ajuda) mas depois em outros posts vi um laço for.... Primeiro quando iniciar o motor gira para uma auto correção, na carcaça do meu motor de um PINO q trava o motor, mas quando trava o motor treme muito(estou tentando fazer algo mas até o momento nada)...se tiver alguma ideia muito obg
  2. muito obg Isadora... Poderia me ajudar em mais uma coisa que para mim era simples... Mas quando fiz o laço for o motor não parou quando chegou a 20 while(1) { for(ii = 0; ii < 20; ii++) //Isso vai servir para quando iniciar o programa o motor ira centralizar na posição escolhida { PORTB = motor[sequencia]; sequencia++; delay_ms(100); if(sequencia >= 4){sequencia = 0;} }
  3. Obg isadora, MAS ainda tm um problema, quando inicio,por ex: aperto S1 um pino fica aciona e trava e só funciona corretamente quando aperto o S2... quando inicio apertando S2 também....?????
  4. Eae pessoal beleza? Ainda sou iniciante em microcontroladores, então, fiz um projeto com motor de passo simples, mas queria implementar esse projeto travando o motor(1 dos fios acionados) quando o motor de por exemplo 20 passos na esquerda(S1) e travar, e só destravar quando apertar para direita(S2)... já tentei algumas coisas mas sem sucesso... * #define S1 PORTA.RA1 #define S2 PORTA.RA0 #define S3 PORTA.RA7 #define S4 PORTA.RA6 #define M1 PORTB.RB7 #define M2 PORTB.RB6 #define M3 PORTB.RB5 #define M4 PORTB.RB4 unsigned short sequencia = 0x00; unsigned short motor[] = {0x10, 0x20, 0x40, 0x80}; unsigned short ii = 0; void main() { CMCON = 0x07; //desabilita comparadores TRISA = 0xFF; //ENTRADA TRISB = 0x00; //SAÍDA PORTA = 0x00; //INICIA EM NIVEL BAIXO PORTB = 0x00; //INICIA EM NIVEL BAIXO while(1) { if(S1) { PORTB = motor[sequencia]; sequencia++; delay_ms(10); if(sequencia >= 4){sequencia = 0;} } if(S2) { PORTB = motor[sequencia]; sequencia--; delay_ms(10); if(sequencia == 255){sequencia = 3;} } }//FIM while }//FIM void main E mais coisa teria como eu colocar algo assim sequencia*20 (motor der 20 passos)direto sem precisar colocar no while os 20 passos, isso seria uma correção de posição... Obg

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