Está en la página 1de 7

Benemérita Universidad Autónoma de Puebla

Facultad de Ciencias de la Electrónica

Licenciatura en Ingeniería Mecatrónica,


Licenciatura en Electrónica

Escobar Vázquez Eduardo R.


Jimenez Garcia Diana L.
Peláez Ramírez Angel
Ramos Xelhuantzi Arturo
Solano Corona Pamela S.

16 de Noviembre de 2021

Microcontroladores
Álvarez González Ricardo

Práctica 6
“Termómetro C”

Objetivo 2
Desarrollo Teórico 3
Lenguaje de alto nivel 3
Compilador 3
Librería para manejar un LCD 3
Configuración del ADC 4
LM35 4
Desarrollo Práctico 5
Programa 5
Diagrama 6
Bibliografía 7

● Objetivo

Diseñar un termómetro utilizando programación en lenguaje C. Se sugiere utilizar como


transductor el LM35 y mostrar la temperatura en una pantalla alfanumérica LCD.
● Desarrollo Teórico
Lenguaje de alto nivel
A medida que los programas se hacen más complejos, trabajar en lenguaje ensamblador se
hace más dispendioso, difícil de manejar y el control de interrupciones muchas veces son un
dolor de cabeza.Una forma de solucionar en gran medida los problemas anteriormente
mencionados, es cambiando el lenguaje de programación ensamblador por uno de alto nivel.

Un lenguaje de programación de alto nivel se caracteriza por expresar los algoritmos de una
manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad con que los
ejecutan las máquinas. Actualmente uno de los lenguajes de alto nivel más atractivos para
usar es el "C ", y es uno de los más difundidos actualmente.

Compilador
Al usar un lenguaje de alto nivel para programar un microcontrolador, dependemos del
compilador. Un compilador es un Software que traduce un programa escrito en un lenguaje
de programación de alto nivel en lenguaje de máquina.

En esta práctica en particular utilizamos el Pic C Compiler el cual es un inteligente y muy


optimizado compilador que contienen operadores estándar del lenguaje C y funciones
incorporadas en bibliotecas que son específicas a los registros de PIC, proporcionando a los
desarrolladores una herramienta poderosa para el acceso al hardware las funciones del
dispositivo desde el nivel de lenguaje C.

Compilador PIC C

Librería para manejar un LCD


El compilador incluye una librería para el manejo de un LCD, para ello tenemos que incluir
la directiva:
#include <LCD.C>.
La librería tiene funciones que utilizaremos:
❖ lcd_init();
Esta función sirve para inicializar la LCD
❖ lcd_gotoxy(int8 X, int8 Y);
Esta función sirve para ir a una posición específica de la LCD.
❖ lcd_putc(char C);
Esta función sirve para escribir caracteres en la LCD. El parámetro de entrada puede
ser un carácter o una cadena de caracteres que deseamos escribir.
Configuración del ADC
EN CCS para controlar el conversor ADC se debe hacer mediante las siguientes
instrucciones:
❖ #device ADC=10
Selecciona la cantidad de bits que usará el conversor (8 o 10)
❖ SETUP_ADC(mode)
Esta función configura el reloj del conversor, los parámetros que acepta son:
➢ ADC_CLOCK_DIV_2
➢ ADC_CLOCK_DIV 8
➢ ADC_CLOCK_DIV_32
➢ ADC_CLOCK_INTERNAL
❖ SETUP_ADC_PORTS(value)
Esta función configura cuales pines del ADC serán analogicos y cuales digitales o
alguna combinación de ambos. Las constantes usadas son diferentes para cada chip.
❖ SET_ADC_CHANNEL(channel)
Especifica el canal a utilizar por la función READ_ADC( ). El número de canal
empieza en 0. Es preciso esperar un corto espacio de tiempo después de cambiar el
canal de adquisición antes de que se pueda obtener lecturas de datos válidos.
LM35
El LM35 es un sensor de temperatura con
una precisión calibrada de 1 °C. Su rango
de medición abarca desde -55 °C hasta
150 °C. La salida es lineal y cada grado
Celsius equivale a 10 mV

Características:

❖ Calibrado directamente en grados Celsius (centígrado)


❖ Factor de escala lineal +10-mV/° C
❖ 0.5°C Precisión asegurada (a 25°C)
❖ Clasificado para rango completo de −55°C a 150°C
❖ Adecuado para aplicaciones remotas
❖ Bajo costo debido al recorte a nivel de oblea
❖ Funciona de 4V a 30V
❖ Drenaje de corriente de menos de 60μA
❖ Bajo autocalentamiento, 0.08°C en aire quieto
❖ Salida de baja impedancia, 0.1Ω para carga de 1mA

● Desarrollo Práctico

Programa
Para este código necesitamos recordar que el sensor LM35 tiene una sensibilidad de 1°C y
cada grado Celsius equivale a 10 mV, por lo que una fórmula para poder convertir la salida
analogica del sensor LM35 a digital seria:

sensor∗5∗100
T=
1024

El 1024 se debe a que el sensor puede tener un valor entre 0 y 1023. Con lo anterior
obtenemos el siguiente código en PIC C:

#include <Termometro.h> // Es el archivo fuente


#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2 // Se declaran los pines de conexión de la LCD
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7

#include <lcd.c> // Se llama a la librería de la LCD

void main()

{
setup_adc_ports(AN0); // Se configura el ADC en el puerto AN0

setup_adc(ADC_CLOCK_INTERNAL|ADC_TAD_MUL_0); // Se configura que el


ADC funcionara con el reloj interno

lcd_init(); // Se inicializa el LCD

float voltaje; // Se declaran variables para el voltaje y la temperatura

int tempera;

while(TRUE) // Comienzo del ciclo que se repetirá durante todo el programa


{

set_adc_channel(0); // Se hace uso del canal 0 del ADC

delay_ms(10); // Se esperan 10 ms

float sensor = read_adc(); //TODO: User Code // Se declara una variable float que será
el valor guardado al ser leído el valor del ADC

voltaje = (sensor*5)/1023; // Conversión del valor del ADC a voltaje


tempera = voltaje*100; // Conversión del voltaje en mV dado por el sensor
LM35 a temperatura

lcd_gotoxy(1,1); //Ubica el cursor en la posición indicada por "X" y "Y".

printf(lcd_putc, "Temperatura:%d C", tempera); //Se imprime el valor de la


temperatura mediante la función lcd_putc

delay_ms(10); //Se esperan 10 ms

}
}
En microC el código se visualiza de la siguiente manera:

Diagrama
Utilizando el código en el PIC, se realizó el siguiente circuito en Proteus para la visualización
del funcionamiento del mismo.
Se puede observar el funcionamiento del circuito en el siguiente enlace:
https://youtu.be/FUGoZYGY5kA

Conclusiones

En la presente práctica se obtuvo el resultado deseado, es decir, la creación de un termómetro


utilizando programación de alto nivel, además de que se utilizó por primera vez este tipo de
programación para hacer uso de un microcontrolador y del compilador. Asimismo, con el
desarrollo de la práctica se ha conseguido tener un mejor entendimiento de los temas vistos
en las recientes sesiones. Particularmente, se profundizó en el uso del compilador, dónde
pudimos realizar un proyecto, realizar el código que manipula al microcontrolador, verificar
que nuestro programa no tenga ningún problema y finalmente utilizar este código en Proteus
para observar el funcionamiento del mismo.

● Bibliografía

Álvarez, R. (2021). Apuntes de la asignatura Microcontroladores.

TEXAS INSTRUMENTS (2017) LM35 Precision Centigrade Temperature Sensors Data


Sheet. Obtenido de: https://www.ti.com/lit/ds/symlink/lm35.pdf

También podría gustarte