Acionamento de Motor de Passo
(Step Motor)
Este código foi escrito para o microcontrolador PIC16F628A em C para o compilador MikroC PRO PIC que pode ser baixado neste blog. O motor de passo utilizado deve ser do tipo unipolar com 5 ou 6 fios. O sinal para o motor sai da PORTB e deve ser utilizado um transistor de potência (TIP122) na saída. Na PORTB temos duas chaves, uma em PORTB.7 que gira o motor em um sentido e a outra em PORTB.6 que gira o motor em outro sentido. Veja o esquema abaixo:
Esquema:
DOWNLOAD:
Firmware - stepmotor.hex;
Código-Fonte - stepmotor.asm;
CÓDIGO-FONTE:
unsigned char motor; int Out[4] = {0xFC,0xF6,0xF3,0xF9}; void main() { TRISB=0b11110000; motor=0; while(1){ if(PORTB.F7==1 && PORTB.F6==0){ motor++; if(motor==4){ motor=0; } PORTB=Out[motor]; } else if(PORTB.F7==0 && PORTB.F6==1){ motor--; if(motor==255){ motor=3; } PORTB=Out[motor]; } else{ PORTB=0; } delay_ms(100); } }
TIPOS DE MOTOR DE PASSO
TIPOS DE LIGAÇÕES
Olá, não entendi o: if(motor==255){
ResponderExcluirmotor=3; E se fosse para duas voltas, como seria o código ? Me desculpe se estou sobrando.
caso 'motor' seja igual a 0, ao decrementá-lo, seu valor será 255.
ExcluirValeu Tiago, estou tentando criar um código para ele girar apenas 02 voltas e por enquanto estou tentando entender seu código que está enxuto e muito bom. Esse valor 255 é valor máximo do binário ? estava pensando que para atingir o 255 teria que incrementar... Valeu.
ExcluirOla amigo, como faço para que, quando clicado o botão o motor gire 360 graus e pare ? Obrigado
ResponderExcluirAlguém tem um codigo usando timer0 no CCS para o controle de motor de passo unipolar
ResponderExcluirAMIGO ESTE PROJETO NÃO FUNCINA
ResponderExcluirPODE SER O HEX ERRADO
amigo este codigo nao funciona
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirAMIGOS ME RETRATANDO. E DANDO OS PARABENAS AO AUTOR DO PROJETO POIS FUNCIONA MUITO BEM.(TEM QUE USAR UM CRISTAL DE 4mhz/ RESISTORES DE POLLANP NOS BOTOES / RESISTOR DE MCLIER). eSPERO TER AJUDADO. OBRIGADO
ResponderExcluir