Mostrando entradas con la etiqueta steppers. Mostrar todas las entradas
Mostrando entradas con la etiqueta steppers. Mostrar todas las entradas

Unipolar Steppers con L298 y Arduino






Conexiones:

Stepper:

Blanco y negro: unirlos y no conectarlos a nada
Amarillo: MOTORA- (del L298)
Rojo: MOTORA+ (del L298)
Naranja: MOTORB- (del L298)
Azul: MOTORB+ (del L298)

ENA: Digital 2 de Arduino
IN1: Digital 3
IN2: Digital 4

ENB: Digital 5
IN3: Digital 6
IN4: Digital 7

VMS: Power del L298: 14v (pero puede ser hasta 35v)

Todas las GND juntas! como siempre!

Codigo arduino:


#include <Stepper.h>
const int stepsPerRevolution = 200;

Stepper myStepper(stepsPerRevolution, 3,4,6,7);          
void setup() {
   myStepper.setSpeed(150);
   int ENA=2;//connected to Arduino's port 2
   int ENB=5;//connected to Arduino's port 5
 
   digitalWrite(ENA,HIGH);//enablae motorA
   digitalWrite(ENB,HIGH);//enable motorB
}
void loop() {
  //horario
  myStepper.step(stepsPerRevolution);
  delay(500);

  // antihorario
  myStepper.step(-stepsPerRevolution);
  delay(500);
}







L293D Motor Drive Shield Expansion Board for Arduino

Este shield es compatible con el: Adafruit Motor Shield

Referencia:

http://learn.adafruit.com/downloads/pdf/afmotor-library-reference.pdf

Para utilizar un servo, conectarlo y luego usar el ejemplo que viene con AFMotor.
IMPORTANTE: alimentar con 9v el arduino para que los servos funcionen!!







Código:


// Adafruit Motor shield library
// copyright Adafruit Industries LLC, 2009
// this code is public domain, enjoy!

#include <AFMotor.h>

// Stepper motor on M1+M2 48 steps per revolution
AF_Stepper stepper(200, 1);

void setup() {
  Serial.begin(9600);           // set up Serial library at 9600 bps
}

int i;

void loop() {
  for (i=0; i<255; i++) {
    stepper.step(1, FORWARD, INTERLEAVE);
    delay(3);
 }

  for (i=255; i!=0; i--) {
    stepper.step(1, BACKWARD, INTERLEAVE);
    delay(3);
 }

  for (i=0; i<255; i++) {
    delay(3);
    stepper.step(1, FORWARD, DOUBLE);
 }

  for (i=255; i!=0; i--) {
    stepper.step(1, BACKWARD, DOUBLE);
    delay(3);
 }
}




Driver para stepper motors Keyes L298N

Fuente:


Para motores DC

http://www.instructables.com/id/Arduino-Modules-L298N-Dual-H-Bridge-Motor-Controll/?ALLSTEPS

Voltaje en VMS: Hasta 35V



Para Steppers


Conexiones:

ENA  connected to Arduino's digital pin 2
IN1    connected to Arduino's digital pin 3
IN2    connected to Arduino's digital pin 4
ENB   connected to Arduino's digital pin 5
IN3    connected to Arduino's digital pin 6
IN4    connected to Arduino's digital pin 7

Fuente externa:

VMS  +5v
GND  Ground

Código 1: Sin Stepper library:

int ENA=2;//connected to Arduino's port 2
int IN1=3;//connected to Arduino's port 3
int IN2=4;//connected to Arduino's port 4
int ENB=5;//connected to Arduino's port 5
int IN3=6;//connected to Arduino's port 6
int IN4=7;//connected to Arduino's port 7

void setup()
{
 pinMode(ENA,OUTPUT);
 pinMode(ENB,OUTPUT);
 pinMode(IN1,OUTPUT);
 pinMode(IN2,OUTPUT);
 pinMode(IN3,OUTPUT);
 pinMode(IN4,OUTPUT);
 digitalWrite(ENA,HIGH);//enablae motorA
 digitalWrite(ENB,HIGH);//enable motorB
}
void loop()
{
 int d = 1;

 digitalWrite(IN1,LOW);
 digitalWrite(IN2,HIGH);
 digitalWrite(IN3,HIGH);
 digitalWrite(IN4,LOW);
 delay(d);
 digitalWrite(IN1,LOW);
 digitalWrite(IN2,HIGH);
 digitalWrite(IN3,LOW);
 digitalWrite(IN4,HIGH);
 delay(d);
 digitalWrite(IN1,HIGH);
 digitalWrite(IN2,LOW);
 digitalWrite(IN3,LOW);
 digitalWrite(IN4,HIGH);
 delay(d);
 digitalWrite(IN1,HIGH);
 digitalWrite(IN2,LOW);
 digitalWrite(IN3,HIGH);
 digitalWrite(IN4,LOW);
 delay(d);    
}


Para entender la secuencia:




Código 2: Con Stepper library:

#include <Stepper.h>
const int stepsPerRevolution = 200;  

Stepper myStepper(stepsPerRevolution, 3,4,6,7);            
void setup() {
   myStepper.setSpeed(150);
   int ENA=2;//connected to Arduino's port 2
   int ENB=5;//connected to Arduino's port 5  
   
   digitalWrite(ENA,HIGH);//enablae motorA
   digitalWrite(ENB,HIGH);//enable motorB 
}
void loop() {
  //horario
  myStepper.step(stepsPerRevolution);
  delay(500);
  
  // antihorario  
  myStepper.step(-stepsPerRevolution);
  delay(500); 
}





Conexiones: