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

Controlar motor DC variando velocidad con L298 driver

fuente: https://electronilab.co/tutoriales/tutorial-de-uso-driver-dual-l298n-para-motores-dc-y-paso-a-paso-con-arduino/


Control de un motor DC variando su velocidad

Si queremos controlar la velocidad del motor, tenemos que hacer uso de PWM. Este PWM será aplicado a los pines de activación de cada salida o pines ENA y ENB respectivamente, por tanto los jumper de selección no serán usados.

Esquema de conexión

L298N_1_mot_PWM

Código en Arduino

El programa controla la velocidad de un motor DC aplicando PWM al pin ENB del módulo L298N.

/*
Ejemplo de control de motor DC usando modulo L298
http://electronilab.co/tienda/driver-dual-para-motores-full-bridge-l298n/
Creado 16/05/14
por Andres Cruz
ELECTRONILAB.CO
*/
int IN3 = 5; // Input3 conectada al pin 5
int IN4 = 4; // Input4 conectada al pin 4
int ENB = 3; // ENB conectada al pin 3 de Arduino
void setup()
{
pinMode (ENB, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
void loop()
{
//Preparamos la salida para que el motor gire en un sentido
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
// Aplicamos PWM al pin ENB, haciendo girar el motor, cada 2 seg aumenta la velocidad
analogWrite(ENB,55);
delay(2000);
analogWrite(ENB,105);
delay(2000);
analogWrite(ENB,255);
delay(2000);
// Apagamos el motor y esperamos 5 seg
analogWrite(ENB,0);
delay(5000);
}

Control_pwm_L298_Electronilab.ino hosted with ❤ by GitHub 

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);
}







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: