> For the complete documentation index, see [llms.txt](https://docs.microside.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.microside.com/practicas/mplab-x-ide/xc8-compiler/pic18f4550-or-pic18f45k50/13-motor-dc-+-driver-l298n.md).

# 13 - Motor DC + Driver L298N

> #### MPLAB X IDE - XC8 Compiler
>
> [**PIC18F4550 / PIC18F45K50**](https://docs.microside.com/practicas/mplab-x-ide/xc8-compiler/pic18f4550-or-pic18f45k50)

<figure><img src="/files/PNsxkEnQXGBbqEhllmsk" alt="" width="350"><figcaption></figcaption></figure>

## **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 C2, 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 C0 y C1 de la tarjeta **X-TRAINER** con el P**IC18F4550/PIC18F45K50,** se realiza una inversión de giro.

**Materiales:**

1 x Tarjeta **X-TRAINER**. [**Manuales**](https://docs.microside.com/tarjetas-de-desarrollo/x-trainer) | [**Comprar**](https://www.microside.com/shop/category/entrenadores-pic-1)

1 x Módulo programador **XCU** o **XCU Lite.** [**Manuales**](https://docs.microside.com/programadores-pics-and-avrs/pic-and-avr) **|** [**Comprar**](https://www.microside.com/shop/category/programadores-pics-avrs-15)

1 x Driver L298N.

1 x Motor DC 5 a 12 volts.

1 x Pila de 9 volts.

1 x Conector para pila cuadrada de 9 volts.

1 x Protoboard de 830 puntos.

1 x Juego de cables Dupont.

1 x Cable micro USB.

**Software:**

Windows 7 o posterior.

MPLAB X IDE. [**Descarga**](https://www.microchip.com/mplab/mplab-x-ide)

Compilador XC8. [**Descarga**](https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-xc-compilers)

X-TRAINER Suite v1.0 [**Descarga**](https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/microside_download_archive/main/Tools/X-TRAINER%20Suite/X-TRAINER%20Suite%20Setup.zip)

MPLAB Code Configurator. (**Solo para PIC18F45K50**)

## **Procedimiento**

1. En el apartado de “[**Diagrama esquemático**](#diagrama-esquematico)” selecciona el modelo de tu tarjeta, realiza las conexiones que se muestran en la imagen y conéctala a la computadora.

{% hint style="info" %}
Las conexiones mostradas en los diagramas esquemáticos son las mismas ya sea que la tarjeta **X-TRAINER** posea el **PIC18F4550** o el **PIC18F45K50**.
{% endhint %}

2. Ejecuta **MPLAB X IDE** y crea un nuevo proyecto con el código fuente que se encuentra en el apartado "[**Código**](#codigo)".
3. Si cuentas con un **PIC18F45K50** ejecuta MCC (MPLAB Code Configurator) y configura los diferentes apartados como lo muestran las siguientes imágenes.

{% hint style="warning" %}
En caso de utilizar un **PIC18F4550** omite este paso.
{% endhint %}

* [**Project Resources**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F5WUr4B0ADdgGuGYwajaX%2F13_Project_Resources.webp?alt=media\&token=270cb528-1939-4d16-a5fa-fa223f2139f8)
* [**System Module**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FQTMNxSn6cdueEnhmCoK9%2F00-comun-System_module-2.webp?alt=media\&token=9414df21-65d2-4454-a5a5-8f429219f5f6)
* [**Device Resources**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F7gO2hUCwNSkYpIzQoPu2%2FComun%20Device%20Resource.webp?alt=media\&token=0eef8588-1608-4550-8b5a-f7c3c24bdde3)
* [**Pin Manager**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FTJi8jTipjkC13JWtfRLz%2F13_PIN_MANAGER.webp?alt=media\&token=c3627af2-dc9d-45a6-af95-2273c325c147)
* [**Pin Module**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FXbrdOlNfJIQgSvPDmjTy%2F13_PIN_MODULE.webp?alt=media\&token=54974e06-8de0-46ca-b146-93d1a8edce8b)
* [**ECCP**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FsumdVWnkRM7kjKxFc6JK%2F13_ECCP1.webp?alt=media\&token=626ff459-4825-4b34-a021-91d6b4a31749)
* [**TMR**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F0OviT9uSJLsFXoRXIMe5%2F13_TMR2.webp?alt=media\&token=8ff4f083-01b8-48c3-82d6-d4d4a9e2e45f)

{% hint style="success" %}
Si tienes dudas de cómo realizar los pasos anteriores puedes encontrar un manual de **MCC (MPLAB Code Configurator)** a través del siguiente [**link**](https://docs.microside.com/practicas/ides/mplab-code-configurator-mcc-mplab-x-ide).
{% endhint %}

4. Realiza los siguientes pasos para configurar el **bootloader** y poder programar la tarjeta **X-TRAINER**:

* Da clic en ***File*** y ***Project Properties***.

<figure><img src="/files/w3YBeDvjt6V6sE8wmGk4" alt=""><figcaption></figcaption></figure>

* Selecciona ***Building***, marca la casilla ***Insert unprotected checksum in user ID memory*** y da clic en ***Apply***.

<figure><img src="/files/tQDojxU2AE1llBIP8s7f" alt=""><figcaption></figcaption></figure>

* Selecciona ***XC8 Linker***, despliega el apartado ***Option categories***: y selecciona ***Memory model**.* \
  En la sección de ***ROM ranges*** escribe **2000-7f00** y da clic en ***Apply***.

<figure><img src="/files/Q8RITTGjuTkTM4IiJx43" alt=""><figcaption></figcaption></figure>

* Despliega nuevamente el apartado ***Option categories:*** y selecciona ***Additional options***. En la sección de ***Codeoffset*** escribe **2000**, da clic en ***Apply*** y por último da clic en ***OK***.

<figure><img src="/files/e6TWqujDRyKaCgXz785a" alt=""><figcaption></figcaption></figure>

5. Una vez realizadas las configuraciones del bootloader compila el proyecto.

{% hint style="success" %}
Para compilar el proyecto dirígete a la barra de herramientas superior y da clic en el icono señalado.
{% endhint %}

<figure><img src="/files/s9YbKLFqdHRHtw6uYviM" alt=""><figcaption></figcaption></figure>

6. Abre el **Software X-TRAINER Suite v1.0** en el apartado **PIC18F4550/45K50**, selecciona el archivo .hex generado al compilar el proyecto y programa la tarjeta.

{% hint style="success" %}
Si tienes dudas de cómo realizar los pasos anteriores puedes encontrar un manual del **Software X-TRAINER Suite v1.0**. a través del siguiente[ **link**](https://docs.microside.com/tarjetas-de-desarrollo/software-x-trainer-suite).
{% endhint %}

7. Al terminar de programar, la tarjeta **X-TRAINER** se reiniciará automáticamente y se ejecutará el programa de esta práctica.

## **Diagrama esquemático**

Selecciona el modelo de tu tarjeta **X-TRAINER.**

{% tabs %}
{% tab title="LITE M R2" %}

<figure><img src="https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/13-DC-L298N-MPLAB-X-IDE-XC8-COMPILER-PIC18F4550-45K50/main/Diagrama%20de%20conexión/X-TRAINER_Lite-M-r2_Practica-13_Microside_02.png" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="LITE M R3" %}

<figure><img src="/files/kRXxasQQKytEUZ3V6VGz" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="LITE F" %}

<figure><img src="https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/13-DC-L298N-MPLAB-X-IDE-XC8-COMPILER-PIC18F4550-45K50/main/Diagrama%20de%20conexión/X-TRAINER_LITE-F_Practica-13_Microside_01.png" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="DIP" %}

<figure><img src="https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/13-DC-L298N-MPLAB-X-IDE-XC8-COMPILER-PIC18F4550-45K50/main/Diagrama%20de%20conexión/X-TRAINER_DIP_Practica-13_Microside_01.png" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="DIP R3" %}

<figure><img src="/files/bjVbf7wsJNvSsz2fvNqR" alt=""><figcaption></figcaption></figure>

{% endtab %}

{% tab title="PRO R2" %}

<figure><img src="https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/13-DC-L298N-MPLAB-X-IDE-XC8-COMPILER-PIC18F4550-45K50/main/Diagrama%20de%20conexión/X-TRAINER_PRO-r2_Practica-13_Microside_01-1.png" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="PRO R3" %}

<figure><img src="/files/ampjT7fEdbEJRxwZIKkI" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="PRO R4 " %}

<figure><img src="/files/5OR3bL0ZMJwDxKO5TzdU" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## **Código**

{% tabs %}
{% tab title="PIC18F4550" %}
{% embed url="<https://gist.github.com/microside-mx/e993d66486eeea4bfccd268861b5939e>" %}
{% endtab %}

{% tab title="PIC18F45K50" %}
{% embed url="<https://gist.github.com/microside-mx/4418d40d986ec01d9a054b64f1a244fd>" %}
{% endtab %}
{% endtabs %}

## **Descargas**

<table data-card-size="large" data-view="cards"><thead><tr><th align="center"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><mark style="color:green;"><strong>Software X-TRAINER Suite v1.0</strong></mark></td><td><a href="https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/microside_download_archive/main/Tools/X-TRAINER%20Suite/X-TRAINER%20Suite%20Setup.zip">https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/microside_download_archive/main/Tools/X-TRAINER%20Suite/X-TRAINER%20Suite%20Setup.zip</a></td></tr><tr><td align="center"><mark style="color:green;"><strong>Proyecto</strong></mark></td><td><a href="https://github.com/MICROSIDE-TECHNOLOGY/13-DC-L298N-MPLAB-X-IDE-XC8-COMPILER-PIC18F4550-45K50/archive/refs/heads/main.zip">https://github.com/MICROSIDE-TECHNOLOGY/13-DC-L298N-MPLAB-X-IDE-XC8-COMPILER-PIC18F4550-45K50/archive/refs/heads/main.zip</a></td></tr></tbody></table>
