Práctica 12 – Motor DC + Driver L298N

 

Introducción

 

En esta práctica se implementa el control de un motor de corriente directa, usando el módulo PWM (modulador de ancho de pulso) para aumentar o disminuir la velocidad y un driver LM298N para realizar un cambio de giro.

 

Descripción

En esta práctica se usa el módulo PWM (Pulse Width Modulation) del pin D11 para el aumento y disminución de la velocidad de giro de un motor DC. Con ayuda de un driver LM298N que se encuentra conectado a los pines D9 y D10 de los módulos X-UNO, X-MEGA o X-NANO se realiza una inversión de giro.

 

Materiales:

1 x Módulo X-UNO, X-MEGA o X-NANO. Comprar

1 x Módulo Programador XCU. Comprar

1 x Driver L298N. Comprar

1 x Motor DC 9 a 12 volts. Comprar

1 x Pila de 9 volts. Comprar

1 x Conector para pila cuadrada de 9 volts. Comprar

1 x Juego de cable Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

Arduino IDE. Descarga

 

Procedimiento

1. En el apartado de “Diagrama esquemático”, que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de “Descargas”, puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de “Código” que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el software Arduino IDE, pega el código en un nuevo proyecto, realiza la compilación. 

4. Programa el código que descargaste o compilaste, en el módulo. En el siguiente link encontrarás un manual para compilar y programar en Arduino IDE.

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

 

 

Diagrama esquemático

 

X-UNO
X-MEGA
X-NANO
X-UNO

X-MEGA

X-NANO

 

Código

 

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

En esta práctica se usa el módulo PWM (Pulse Width Modulation), para el aumento y disminución de la

velocidad, así como el uso del puente H LM298N para el cambio giro.

**************************************************************************/

int IN_1 = 9;                                                         //Pin de control de dirección 1

int IN_2 = 10;                                                       //Pin de control de dirección 2

int MOTOR = 11;                                                  //Pin de control de velocidad

int SUBE;                                                             //Control e indicador de dirección

int VELOCIDAD;                                                 //Almacena valor de la velocidad

void setup()

{

  pinMode(IN_1, OUTPUT);                               //Configuramos como salida

  pinMode(IN_2, OUTPUT);                               // Configuramos como salida

  pinMode(MOTOR, OUTPUT);                         // Configuramos como salida

}

void loop()

{

      digitalWrite(IN_1,1 );                                  //Dirección del motor

      digitalWrite(IN_2,0 );

      SUBE=1;

      while(VELOCIDAD<255 && SUBE){        //Se va incrementando del valor en el PWM hasta el máximo

      VELOCIDAD++;                                       //Se incrementa el ciclo de trabajo

      analogWrite(MOTOR,VELOCIDAD);       //Salida Pin 11

      delay(10);                            

      }

      SUBE=0;

      while(VELOCIDAD>0 && !SUBE) {        //Se va reduciendo el valor en el PWM hasta el mí­nimo

      VELOCIDAD–;                                       //Se reduce el ciclo de trabajo

      analogWrite(MOTOR,VELOCIDAD);     //Salida Pin 11

      delay(10);

      }

      SUBE=1;

      digitalWrite(IN_1,0 );                              //Alto del motor

      digitalWrite(IN_2,0 );            

      delay(1000);

      digitalWrite(IN_1,0 );                              //Dirección del motor

      digitalWrite(IN_2,1 );

      SUBE=1;

      while(VELOCIDAD<255 && SUBE){     //Se va incrementando del valor en el PWM hasta el máximo

      VELOCIDAD++;                                     //Se incrementa el ciclo de trabajo

      analogWrite(MOTOR,VELOCIDAD);     //Salida Pin 11

      delay(10);                       

      }

      SUBE=0;

      while(VELOCIDAD>0 && !SUBE) {      //Se va reduciendo el valor en el PWM hasta el mí­nimo

      VELOCIDAD–;                                     //Se reduce el ciclo de trabajo

      analogWrite(MOTOR,VELOCIDAD);    //Salida Pin 11

      delay(10);

      }

      SUBE=1;

      digitalWrite(IN_1,0 );                             //Alto del motor

      digitalWrite(IN_2,0 );

      delay(1000);

}

 

 

  ¿Qué te pareció esta práctica?

Calificación 0

 

 

Descargas

Práctica 12 – Arduino

Descarga código en Arduino de la práctica 12.

 

Fecha

enero 12, 2019

Categoría

Prácticas Arduino

EnglishSpanish