Práctica 17 – Sensor de temperatura LM35

 

INTRODUCCIÓN

 

En esta práctica se implementa la lectura de un sensor de temperatura analógico LM35, para ello se utiliza el módulo ADC para adquirir los valores y visualizarlos a través de un display LCD.

 

 

Selecciona la plataforma y entorno de programación.

 

 

PIC
AVR
PIC
PIC C Compiler
PIC C Compiler
Bootloader X-TRAINER
Bootloader X-TRAINER

Descripción

En esta práctica se realiza una medición de temperatura (ºC) con el sensor LM35, visualizando el resultado de la medición a través de un display LCD (16x2), usando los módulos X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28 con el PIC18F45K50 o PIC18F25K50.

 

Materiales:

1 x Módulo X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28Comprar

1 x Display LCD 16x2. Comprar

1 x Potenciómetro de 10k Ohms. Comprar

1 x Resistencia de 220 Ohms. Comprar

1 x Sensor de temperatura LM35. 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.

PIC C Compiler v5.069 o posterior. Descarga

XIDE v1.0 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. Es necesario descargar el archivo ya que dentro, se encuentran las librerías necesarias para la correcta compilación.

3. Ejecuta PIC C Compiler, abre el archivo descargado y compila el programa. En el siguiente link encontrarás un manual para compilar en PIC C Compiler.

4.Abre el Software XIDE v1.0 y programa el código que descargaste o compilaste en el módulo. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0. 

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

 

Diagrama esquemático

 

X-TRAINER P8 LITE
X-TRAINER P8
X-TRAINER P8 DIP 40
X-TRAINER P8 DIP 28
X-TRAINER P8 LITE

X-TRAINER P8

X-TRAINER P8 DIP 40

X-TRAINER P8 DIP 28

 

Código

Código

/*

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

FECHA: JUNIO 2019

*/

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

Esta práctica consiste en realizar la medición de temperatura por medio de un

sensor LM35 e imprimir la lectura en una pantalla LCD

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

 

#include <18F45K50.h>            // Incluye la librería para el PIC ( para X-TRAINERp8DIP28: #include <18F25K50.h> )

#device ADC=10                        // Configura el ADC a 10 bits

#use delay(internal=48MHz)       // Configura frecuencia del oscilador interno

#build(reset=0x02000,interrupt=0x02008)   // Asigna los vectores de reset e interrupción para la versión con bootloader

#org 0x0000,0x1FFF {}                                 // Reserva espacio en memoria para el bootloader

 

//——————————————————————————-

//CONFIGURACION DE PINES LCD

#define LCD_RS PIN_B0                               //CONTROL del LCD

#define LCD_RW PIN_B1

#define LCD_E PIN_B2

#define LCD_DB4 PIN_B3                               //DATOS del LCD (4 lineas)

#define LCD_DB5 PIN_B4

#define LCD_DB6 PIN_B5

#define LCD_DB7 PIN_B6

 

//=============================

#include “flex_lcd.h”                                               //LIBRERIA LCD

 

float temperatura;                                                    //variable

void main(void)

{

  lcd_init ();                                                                 // comandos de inicialización del lcd.

  delay_ms (50) ;

  setup_adc_ports (sAN3);                                          //configuracion indiuvidual deL canal ADC en A0

  setup_adc (ADC_CLOCK_INTERNAL);

//—————————-rutina principal —————————-

   while (1)

   {

       set_adc_channel( 3 );                                                 //conversion analogica por canal 0

       delay_ms(100);                                                           //tiempo de espera para conversion de ADC

         temperatura = read_adc();                                          //lee voltaje analogico en puerto A0

         temperatura = temperatura*0.488;                              //5.00volts*temperatura * (100.00/1023.00)=0.488

         printf(lcd_putc,”\\fTemperatura \\n%3.1fC”, temperatura);

          delay_ms(100);

     }
}

 

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 17– PIC – Bootloader – CCS

Descargar código en PIC C Compiler de la práctica 17.

AVR
Atmel Studio 7
Atmel Studio 7
Programador XCU
Programador XCU

Descripción

En esta práctica se realiza una medición de temperatura (ºC) con el sensor LM35, visualizando el resultado de la medición a través de un display LCD (16x2), usando los módulos X-UNO o X-NANO.

 

Materiales:

1 x Módulo X-UNOX-NANO. Comprar

1 x Módulo programador XCU. Comprar

1 x Módulo X-AVR. Comprar

1 x Potenciómetro de 10 kOhms. Comprar

1 x Resistencia de 220 Ohms. Comprar

1 x Display LCD 16x2.

1 x Sensor de temperatura LM35.

1 x Juego de cable Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

Atmel Studio 7. 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. Es necesario descargar el archivo ya que dentro, se encuentran las librerías necesarias para la correcta compilación.

3. Ejecuta Atmel Studio 7, abre el archivo descargado y compila el programa. En el siguiente link encontrarás un manual para compilar y programar tu proyecto en Atmel Studio 7. En el siguiente link encontrarás un manual de Atmel Studio para programador XCU.

4. Al terminar de programar, el programa de esta práctica se ejecutará. 

 

Diagrama esquemático

 

X-UNO
X-NANO
X-UNO

X-NANO

 

Código 

Código

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

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

FECHA: JUNIO 2019

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

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

Esta práctica consiste en realizar la medición de temperatura por medio de un sensor LM35 e imprimir la lectura en una pantalla LCD

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

#define F_CPU 16000000

#include <avr/io.h>

#include <util/delay.h>

#include <stdlib.h>

#include “lcd.h”                                                                                        //Librería LCD

int temperatura;                                                                                        //Declaramos la variable para el ADC

char buffer [5] ;

void SistIni()

{

     ADMUX|= (1<<REFS0);                                                                        // Selecciona Vref

     ADCSRA|= (1<<ADPS2)| (1<<ADPS1)| (1<<ADPS0)| (1<<ADEN);     //Habilita ADC.

}

uint16_t ReadADC(uint8_t ADCchannel)

{

     ADMUX = (ADMUX&0xF0)| (ADCchannel&0x0F);                                   //Selecciona el canal del ADC.

    ADCSRA|= (1<<ADSC);                                                                            // Modo de conversión unica.

     while (ADCSRA& (1<<ADSC));                                                                //Espera hasta que se complete la conversión de ADC.

     return ADC;

}

int main(void)

{

    SistIni();

    lcd_init(LCD_DISP_ON);                                                                             //Inicialización del lcd.

    lcd_home();

    lcd_clrscr();                                                                                                   //Limpia display

    _delay_ms(100);                                                                                           //Retardo de 1 segundo

    lcd_puts(“Sensor de\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n”);                                                                               //Imprime en display “Sensor de”

    lcd_puts(“Temperatura LM35”);                                                                  //Imprime en display “Temperatura LM35”

    _delay_ms(2500);                                                                                          //Retardo de 1 segundo

   lcd_clrscr();                                                                                                     //Limpia display

   while (1)

    {

       temperatura = ReadADC (0);                                                                        //Leer el valor del LM35

       temperatura = (temperatura * 100.0 * 5.0)/1024.0 ;                                      //Conversión a centígrado

       itoa(temperatura,buffer,10);                                                           //Conversión de valor numérico a cadena de texto

       lcd_puts(“Temperatura:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n”);                                                                           //Imprime en display “Temperatura”

       lcd_puts(buffer);                                                                                             //Imprime la cadena de texto

       lcd_puts(” C”);                                                                                                //Imprime en display “C”

       _delay_ms(1000);                                                                                           //Retardo de 1 segundo

      lcd_clrscr();                                                                                                       //Limpia display

    }

}

 

 

Descargas

Práctica 17-AVR-XCU

Descargar código en Atmel Studio 7 de la práctica 17.

 

 

 

Fecha

agosto 13, 2019

Categoría

Prácticas CCS-AS7

EnglishSpanish