Pular para o playerIr para o conteúdo principalPular para o rodapé
  • 21/02/2017
http://www.blogeletronicaja.blogspot.com.br/2014/12/motor-de-passo-com-arduino-parte-03.html

#eletronicajá

BLOG: www.blogeletronicaja.blogspot.com
EMAIL: andrepenha@gmail.com
FACEBOOK: https://www.facebook.com/eletronicaja/

o diagrama completo está em:
http://www.mediafire.com/view/izoy5kvruwj7iz9/diagrama%20ligacao%20arduino%20motor%20de%20passo.jpg#

http://postimg.org/image/qs8ou29yz/

o mosfet foi o IRF840 o optoacoplador na prática usei o SFH610A no diagrama tá o 4n25, mas na montagem usei o SFH610A mesmo.
resistores:
3.3k - resistor de pull-down ligado no gate dos mosfets
1k - limitador de corrente do led do optoacoplador
390R - limitador de corrente do led sinalizador


Uso de opto-acopladores para acionamento de Mosfet's e configuração do Arduíno para acionamento dos drives do motor de passo.






Diagrama de ligação disponível no blog. Tem o link aqui embaixo também:

http://www.mediafire.com/view/izoy5kvruwj7iz9/diagrama%20ligacao%20arduino%20motor%20de%20passo.jpg



/*
acionamento motor de passo unipolar retirado impressora xerox
um passo por vez - gasta menos energia
pulso simples
full step - 1 fase
*/

void setup() {

//configurando os pinos como saídas
pinMode(9, OUTPUT); //1a
pinMode(10, OUTPUT);//2a
pinMode(11, OUTPUT);//1b
pinMode(12, OUTPUT);//2b
}

//tempo de 5 foi o que apresentou a melhor
//velocidade para o motor de scanner sem travar

//o motor da xerox com 3 nao gira
//com 4 tem a velocidade maxima
const int tempo = 4;


void loop() {

//sequencia
//1a - 2a - 1b - 2b - retorna


digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);

delay(tempo); // wait for a second


digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, LOW);

delay(tempo); // wait for a second


digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);

delay(tempo); // wait for a second



digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, HIGH);

delay(tempo); // wait for a second
}

Recomendado