# 18 - Sensor de Temperatura DS18B20



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

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FYN3yWFP8adc16gLsfTk3%2F17%20-%20Sensor%20de%20temperatura%20DS18B20.png?alt=media&#x26;token=8d7a963f-13d4-4ee6-b637-665ff7e891c7" alt=""><figcaption></figcaption></figure>

## **Introducción**

En esta práctica se implementa la lectura de un sensor de temperatura digital DS18B20, los valores obtenidos se visualizan a través de un display LCD.

## **Descripción**

En esta práctica se realiza una medición de temperatura (ºC) con el sensor DS18B20, visualizando el resultado de la medición a través de un display LCD (16×2), usando la tarjeta **X-TRAINER** con el **PIC18F4550/PIC18F45K50**.

**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 Display LCD 16×2.

1 x Potenciómetro de 10k Ohms.

1 x Resistencia de 220 Ohms.

1 x Resistencia de 10K Ohms.

1 x Sensor de temperatura DS18B20.

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 %}

* [**System Module**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FOqc9juqisb0ZEjlYMmCq%2F18_System-module.webp?alt=media\&token=08c4cc70-1dc9-48b4-87cc-686ab517b617)
* [**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%2FinR9GpbKLMLkWIaIhdnX%2F18_Pin-Manager.webp?alt=media\&token=a9eb7a56-e550-4b64-a4b9-feed36a7ef9c)
* [**Pin Module**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FWLL2ALB61LpREi4HpomT%2F18_Pin-Module.webp?alt=media\&token=b602afe3-5865-4746-9f5e-d801fb5e2445)

{% 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="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FmWA48vgz0NiwtZUS2t0b%2FFILE%20MPLAB%20X%20IDE%20-%20PIC18F45K50%20PIC18F4550%20MICROSIDE.png?alt=media&#x26;token=1073ea96-9c9a-40bf-ad99-3c55b3c61d9f" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FEEnYQ91dO2MU0NQ1Kc7M%2FPROJECT%20PROPERTIES%20MPLAB%20X%20IDE%20-%20PIC18F45K50%20MICROSIDE.png?alt=media&#x26;token=b7360a4e-027d-41ff-a912-72edfc3db42a" 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="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FLlDc2LiPzzFpFtGgxZZY%2FPROJECT%20PROPERTIES%20MPLAB%20X%20IDE%20-%20%20XC8%20LINKER%20PIC18F45K50%20MICROSIDE.png?alt=media&#x26;token=6118558c-4826-4142-a064-8d103dfad597" 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="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FBBaB5FSH2wKhN03CPOZy%2FPROJECT%20PROPERTIES%20MPLAB%20X%20IDE%20-%20%20XC8%20LINKER%20ADDITIONAL%20OPTIONS%20PIC18F45K50%20MICROSIDE.png?alt=media&#x26;token=0b87aaa0-9361-42f1-8bf0-ed43cfc52447" 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="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FaeLeCBrggmC8icPqUlU8%2FMPLAB%20X%20IDE%20COMPILACION%20MICROSIDE.png?alt=media&#x26;token=c473944c-57f1-436f-96c7-b5a9533ef719" 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/18-DS18B20-MPLAB-X-IDE-XC8-COMPILER-PIC18F4550-45K50/main/Diagrama%20de%20conexi%C3%B3n/X-TRAINER_Lite-M-r2_Practica-18_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%2FpwLWTy6pLP129ASNrlAw%2FSensor%20de%20Temperatura%20DS18B20%20PIC18F44550%20o%20PIC18F45K50%20X-TRAINER%20LITE%20M%20MICROSIDE%20.webp?alt=media&#x26;token=9d1053fe-e864-4216-8344-b8f01c8e2908" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="LITE F" %}
<figure><img src="https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/18-DS18B20-MPLAB-X-IDE-XC8-COMPILER-PIC18F4550-45K50/main/Diagrama%20de%20conexi%C3%B3n/X-TRAINER_LITE-F_Practica-18_Microside_01.png" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="DIP" %}
<figure><img src="https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/18-DS18B20-MPLAB-X-IDE-XC8-COMPILER-PIC18F4550-45K50/main/Diagrama%20de%20conexi%C3%B3n/X-TRAINER_DIP_Practica-18_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%2F1TkQ62CcKVor8e7mRc4f%2Fhands-on-pic18f-ds18b20-trainer-dip-r3.png?alt=media&#x26;token=d2e6c692-e865-4756-b54d-10f0530dfe9b" alt=""><figcaption></figcaption></figure>


{% endtab %}

{% tab title="PRO R2" %}
<figure><img src="https://raw.githubusercontent.com/MICROSIDE-TECHNOLOGY/18-DS18B20-MPLAB-X-IDE-XC8-COMPILER-PIC18F4550-45K50/main/Diagrama%20de%20conexi%C3%B3n/X-TRAINER_PRO-r2_Practica-18_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%2FTNATikA4hdqIYKJ6SHFw%2F18%20Sensor%20de%20Temperatura%20BS18B20%20X%20Trainer%20Pro%2018.png?alt=media&#x26;token=19e55955-b3a4-48db-aa48-f717c27b13a5" 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%2FU2bsADBqJse5RGBP4ins%2FSensor%20de%20Temperatura%20DS18B20%20PIC18F4550%20%20o%20PIC18F45K50%20X-TRAINER%20PRO%20R4%20MICROSIDE.webp?alt=media&#x26;token=9746a4d4-16ec-40f5-abf6-6a559cdc09fc" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## **Código**

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

{% tab title="PIC18F45K50" %}
{% embed url="https://gist.github.com/microside-mx/081443231c7a699644e23f8b6890118f" %}
{% 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/18-DS18B20-MPLAB-X-IDE-XC8-COMPILER-PIC18F4550-45K50/archive/refs/heads/main.zip">https://github.com/MICROSIDE-TECHNOLOGY/18-DS18B20-MPLAB-X-IDE-XC8-COMPILER-PIC18F4550-45K50/archive/refs/heads/main.zip</a></td></tr></tbody></table>
