# 20 - Bluetooth HM-10

> **mikroC PRO for PIC**
>
> [**PIC18F4550 / PIC18F45K50**](https://docs.microside.com/practicas/mikroc-pro-for-pic/pic18f4550-or-pic18f45k50)

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FYGpsAvaqyAg6UoeIiAVa%2F20%20-%20Bluetooth%20HM-10.png?alt=media&#x26;token=54a4f65a-6e47-460f-a907-b6eabf83e649" alt=""><figcaption></figcaption></figure>

## **Introducción**

En esta práctica se implementa el control del encendido y apagado de un LED por medio de bluetooth 4.0 LE (Low Energy). El control del LED se realiza a través de un módulo bluetooth HM-10 para recibir y enviar datos a un smartphone mediante una aplicación llamada “[**Serial Bluetooth Terminal**](https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal)” para Android.

## **Descripción**

En esta práctica se realiza la conexión con el módulo Bluetooth HM-10 para enviar y recibir datos hacia un smartphone por medio de una aplicación llamada “[**Serial Bluetooth Terminal**](https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal)” para Android, la cual envía indicaciones para el encendido y apagado de un LED, también pregunta el estado de un push button usando la tarjeta **X-TRAINER** con el **PIC18F4550/PIC18F45K50**. Para encender el LED se envía el número 1, si se desea apagar se envía el número 0. Para recibir el estado del push button “BOOT”, se envía el signo “?”, si está presionado recibe el número 1, en caso contrario se recibe el número 0.

**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 Bluetooth HM-10.

1 x Protoboard de 830 puntos.

1 x Juego de cables Dupont.

1 x Cable micro USB.

**Software:**

Windows 7 o posterior.

mikroC PRO Compiler. [**Descarga**](https://www.mikroe.com/mikroc-pic)

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)

## **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 **mikroC PRO compiler**, crea un nuevo proyecto con el código fuente que se encuentra en el apartado "[**Código**](#codigo)" y compila el programa.

{% hint style="success" %}
Si tienes dudas de cómo realizar los pasos anteriores puedes encontrar un manual de **mikroC PRO compiler** a través del siguiente[ ](https://docs.microside.com/manuales-de-usuario/ides/pic-c-compiler-ccs)[**link**](https://docs.microside.com/practicas/ides/mikroc-pro-for-pic).
{% endhint %}

**3.** 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 %}

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

A continuación se muestran las instrucciones para la comunicación entre el módulo Bluetooth y el Smartphone.

### Instrucciones para comunicación Bluetooth

**PASO 1**

Empareja el dispositivo Bluetooth HM-10 a través de las configuraciones de tu Smartphone.

{% hint style="warning" %}
Nota: si no se ha programado el dispositivo HM-10 el nombre y contraseña deberán ser los siguientes:

Nombre: BT05

Contraseña: 000000
{% endhint %}

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F6IomCqwRbmKOkxYsyuUd%2FInstrucciones%20para%20comunicaci%C3%B3n%20Bluetooth%20HM-10.png?alt=media&#x26;token=b7e67195-9f5e-40b5-8217-9f025d640193" alt=""><figcaption></figcaption></figure>

**PASO 2**

Selecciona el tipo de Bluetooth desde el apartado de “Devices” teniendo dos opciones:

BLUETOOTH CLASSIC: Bluetooth 2.0 (HC-05)

BLUETOOTH LE: Bluetooth 4.0 (HM-10)

En este caso seleccionamos LE y BT05 (HM-10).

{% hint style="warning" %}
Nota: Una vez conectado los dispositivos, podrás enviar y recibir datos a través de la aplicación para el control de encendido y apagado del LED, así como el estado del push button.
{% endhint %}

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F7Y9FG5etSGgnCrWhoo95%2FInstrucciones%20para%20comunicaci%C3%B3n%20Bluetooth%20HM-10.png?alt=media&#x26;token=f64eceb6-f98e-409a-abe7-0cac9e93a566" alt=""><figcaption></figcaption></figure>

## **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/20-HM-10-mikroC-PRO-for-PIC-PIC18F4550-45K50/main/Diagrama%20de%20conexi%C3%B3n/X-TRAINER_Lite-M-r2_Practica-20_Microside_02.png" alt=""><figcaption></figcaption></figure>
{% endtab %}

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

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F5FIqoBFmQrxHppdAcAs5%2FBluetooth%20HM-10%20PIC18F44550%20o%20PIC18F45K50%20X-TRAINER%20LITE%20M%20MICROSIDE.webp?alt=media&#x26;token=f1e1c995-a6bb-42ba-8981-4b1c483a1d34" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="LITE F" %}

<figure><img src="https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/20-HM-10-mikroC-PRO-for-PIC-PIC18F4550-45K50/main/Diagrama%20de%20conexi%C3%B3n/X-TRAINER_LITE-F_Practica-20_Microside_01.jpg" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="DIP" %}

<figure><img src="https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/20-HM-10-mikroC-PRO-for-PIC-PIC18F4550-45K50/main/Diagrama%20de%20conexi%C3%B3n/X-TRAINER_DIP_Practica-20_Microside_01.png" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="DIP R3" %}

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F0DN8NZZrk9qgPvHtxGNw%2Fhands-on-pic18f-hm10-trainer-dip-r3.png?alt=media&#x26;token=f6a4b9b6-533c-4d7f-ab58-707413b6402d" alt=""><figcaption></figcaption></figure>

{% endtab %}

{% tab title="PRO R2" %}

<figure><img src="https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/20-HM-10-mikroC-PRO-for-PIC-PIC18F4550-45K50/main/Diagrama%20de%20conexi%C3%B3n/X-TRAINER_PRO-r2_Practica-20_Microside_01-1.png" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="PRO R3" %}

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FFCuKWVx0W0BOBxT10PlE%2F21%20Bluetooth%20HM-10%20X%20Trainer%20Pro%2018.png?alt=media&#x26;token=0b9443ef-a4b2-45d2-9aa6-4074fb4bc2ab" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="PRO R4 " %}

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FmZfByRLihGPinDUlWR9j%2FBluetooth%20HM-10%20PIC18F4550%20%20o%20PIC18F45K50%20X-TRAINER%20PRO%20R4%20MICROSIDE.webp?alt=media&#x26;token=8305ffa9-7d35-4aa4-b7cd-cae141749d3f" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## **Código**

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

{% tab title="PIC18F45K50" %}
{% embed url="<https://gist.github.com/microside-mx/bcb2c0c6279cd15e9f10feb85e8ac873>" %}
{% 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/20-HM-10-mikroC-PRO-for-PIC-PIC18F4550-45K50/archive/refs/heads/main.zip">https://github.com/MICROSIDE-TECHNOLOGY/20-HM-10-mikroC-PRO-for-PIC-PIC18F4550-45K50/archive/refs/heads/main.zip</a></td></tr></tbody></table>
