Proyecto 10.4 - Keyes L298 Stepper Motor Driver

6 de mayo de 2017

En el Proyecto 9.2 vimos una introducción al driver L298 y un ejemplo de funcionamiento con motores de CC. Si es tu primer contacto con este módulo, mira el enlace anterior para obtener más información.

En el siguiente tutorial aprenderemos a controlar motores paso a paso con Arduino y el driver L298. Este controlador puede gestionar cargas de hasta 35V y 2A, por lo que está especialmente indicado para motores de tamaño medio-alto.

Esquema

El siguiente esquema muestra la conexión de un motor paso a paso NEMA 17, concretamente un modelo KH42JM2-852 de Japan Servo Co. ver datasheet al final de la página.

Las entradas EN_A y EN_B se conectan a +5V. Y las entradas IN_1 a IN_4 se conectan a los pines D8 a D11. Se pueden conectar a cualquier otro pin del Arduino si así lo deseamos, pero lo he conectado de esta manera para aprovechar los ejemplos ya creados que vienen con la librería Stepper.

Arduino KEYES L298 STEPPER  MOTOR DRIVER w KH42JM2-852 - Schematic.png

Sketch

Vamos a ver un ejemplo sencillo. El siguiente sketch hace que nuestro motor gire una vuelta en sentido horario y otra en antihorario, con una pausa de 500ms entre ambas.

Este código está disponible en Ejemplos→Stepper→stepper_oneRevolution

screenshot.png

/*

Stepper Motor Control - one revolution

This program drives a unipolar or bipolar stepper motor.

The motor is attached to digital pins 8 - 11 of the Arduino.

The motor should revolve one revolution in one direction, then

one revolution in the other direction.

Created 11 Mar. 2007

Modified 30 Nov. 2009

by Tom Igoe

*/

#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution

// for your motor

// initialize the stepper library on pins 8 through 11:

Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {

 // set the speed at 60 rpm:

 myStepper.setSpeed(60);

 // initialize the serial port:

 Serial.begin(9600);

}

void loop() {

 // step one revolution  in one direction:

 Serial.println("clockwise");

 myStepper.step(stepsPerRevolution);

 delay(500);

 // step one revolution in the other direction:

 Serial.println("counterclockwise");

 myStepper.step(-stepsPerRevolution);

 delay(500);

}


Este ejemplo puede servir para probar motores paso a paso y verificar su correcto funcionamiento.

Links

Más información sobre la librería Stepper y los motores paso a paso.

Tutorial sobre el driver L298 en tronixstuff.com