Pages: [1]   Go Down
Author Topic: Motor Paso a Paso  (Read 1835 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 23
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas, estoy intentando usar un motor paso a paso Bipolar de una disquetera, he mirado las especificaciones y es a 5v, pero intento hacerlo funcionar y no hay manera, reconozco los dos polos, y conecto los 4 cables a cuatro salidas digitales, y las voy encendiendo de dos en dos en funcion de los polos, pero el motor no se mueve a ningún lao, es necesario usar alguna etapa de potencia¿
En clase cuando trabajaba con motores paso a paso, los coenctaba a los automatas directamente y funcionaban perfectamente.. por qué con arduino no?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 13
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola, necesitas un driver L293 para poder usar motores bipolares.
En google encontraras facilmente muchos esquemas.

Tambien necesitas saber la secuencia para hacer funcionar estos motores:

Paso            terminales

            A      B      C      D

1            +V      -V      +V      -V
2            +V      -V      -V      +V
3            -V      +V      -V      +V
4            -V      +V      +V      -V


Un ejemplo de programa:

Code:

//Control de motor PaP Bipolar


 // PIN-es del Motor
 int motorPin1 = 8;    //Pin cable verde                        
 int motorPin2 = 9;    //Pin cable rojo
 int motorPin3 = 10;   //Pin cable negro
 int motorPin4 = 11;   //Pin cable marron
 int delayTime = 50;                            // Delay que determina la velocidad de giro

void setup() {
// Configuraci n de los PIN-es como salida digital
  pinMode(motorPin1, OUTPUT);                    
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
}


void loop() {
// Secuencia de activacion para motor Bipolar
  digitalWrite(motorPin1, HIGH);                
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delay(delayTime);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delay(delayTime);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 23
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias EMV, con el L293, puedo controlar otros que no sean bipolares?, es decir vale para cualquier paso a paso?
mañan ale echaré n vistazo gracias!
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 13
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si, y ademas tambien puedes usar el L298 y para los unipolares tambien puedes usar el ULN2803.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 23
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, esta tarde lo comprare,
me recomiendas el shields para motores? eso ya es demasiado..?
http://www.adafruit.com/index.php?main_page=product_info&cPath=17_21&products_id=81&zenid=2ee45bd10f09092785cbae4e817469fe
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,
Puedes usar un driver como SAA1027 ( bipolar ), L287 ( tanto para bipolar como unipolar ) y similares.
Con estos driver puedes controlra el moor usando solo 2 pines del micro, uno para los pasos y otro para el sentido de giro.
De esta forma el codigo se simplifica.

int n=0;

void setup()                      // run once, when the sketch starts
{
  pinMode(2,OUTPUT);              // señal de movimiento del motor
  pinMode(3,OUTPUT);              // sentido de giro
}
 
void movimiento(){
   digitalWrite (3,HIGH);              // giro en sentido horario
   for(n=0;n<48;n++){              // hace 360º con pasos de 7,5º
    digitalWrite (2,HIGH);        // paso del motor
    delay(5);                   // pausa en milisegundos
    digitalWrite(2,LOW);          // paso del motor
    delay(5);                   // pausa en milisegundos
  }
}  
Logged

Pages: [1]   Go Up
Jump to: