Eu uso um 16F628 e o ULN2003 o e programa a baixo o que o motor faz eh dar um pequeno passo para a direita,de seguida outro passo para a esquerda , ou seja não dah uma volta completa ,e assim sucessivamente, notei que o ULN2003 esquenta um pouco eu verifico com o dedo em cima e logo desligo ele!
Eu penso que o circuito esta bem e o codigo penso que tambem ,mas dehem uma olhada para ver algum possivel erro!
desde jah agradço
O motor em questão eh um motor de passo unipolar
- Código: Selecionar todos
#include <16f628.H>
#fuses XT, NOMCLR, NOPROTECT, NOWDT, NOLVP
#use delay(clock=4000000)
#use fast_io(b)
#define tempo 40
int passo[]={0b00001000,
0b00000100,
0b00000010,
0b00000001,};
int posicao;
void pulsamotor( int direcao )
{
if(direcao!=0) posicao++;
output_b(passo[ posicao & 0x03]);
delay_ms(tempo);
}
void main(void){
int i;
set_tris_b(0x00);
while(true){
for(i=0;i<50;i++)
{
pulsamotor(i);
}
}
}