Está en la página 1de 3

1

Práctica 7. Sensor de Temperatura


Universidad de Guanajuato, División de Ciencias e Ingenierías
Arquitectura de Microcontroladores
Profesor: Dr. Eduardo Montes Ramírez
Fonseca Uribe Oswaldo Emmanuel 1
Muñoz González Raúl Gilberto 2

Resumen—Durante la práctica, se montó circuito el cuál utiliza Resistencias (1kΩ)


sensores de temperatura para obtener lecturas de la misma y LED varios colores
realizar acciones dependiendo de esta. Motor de corriente directa
La figura 2 muestra el circuito montado utilizado.

I. C IRCUITO E LECTRÓNICO
La figura 1 muestra el circuito simulado en la plataforma
Tinkercad, mismo que se construyó durante la práctica en el
laboratorio.

Figura 2. Circuito montado con pantalla LCD y ventilador.

Figura 1. Circuito de la práctica simulado IV. C ÓDIGO


A continuación se presenta el código creado para la práctica,
II. O BJETIVOS éste está programado por partes para observar correctamente
Medir temperatura con un termistor y desplegarla en una cada uno de los objetivos por separado:
pantalla LCD.
Medir temperatura con un sensor LM35 o DHT11 y IV-A. Objetivo 0
desplegarla en una pantalla LCD.
Activar un ventilador si la temperatura es mayor a 26 °C Primeramente agregamos lo necesario de bibliotecas para
y apagarla si es menor a 26 °C. la práctica, así como variables que nos serviran y el setup
de la práctica (nótese que las entradas de la pantalla, al estar
directamente destinadas en la placa, no se declaran)
III. M ATERIALES Y M ONTAJE E XPERIMENTAL
Materiales utilizados en la práctica: #include <LiquidCrystal.h>
int RS = 12;
Computadora Portátil int E = 11;
Placa de Arduino UNO R3 y cable de alimentación USB int D4 = 5;
Protoboard int D5 = 4;
Pulsador 2 terminales int D6 = 3;
Potenciometro (10kΩ) int D7 = 2;
float c1=2.108508173e-3 ;
Pantalla LCD (16x2) float c2=0.7979204727e-4 ;
Módulo I2C para LCD float c3=6.535076315e-7 ;
Cable C22 (varios colores) float r=10000.00;
Caimanes de conección int sthr;
float logthr;
1 Lic. en Física oe.fonsecauribe@ugto.mx float thr;
2 Ing. Química Sustentable rg.munozgonzalez@ugto.mx int tdht;
2

int ldht=13; lcd.print("***Termistor****");


int pp; lcd.setCursor(7,1);
lcd.print(thr);
int ventilador = 13; lcd.print(" C ");
Vent(thr);
LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
}
#include <DHT.h>
#include <DHT_U.h>

int Sensor; IV-C. Objetivo 2


float Temp; Medir temperatura con un sensor LM35 o DHT11 y
float Suma;
int thrsensor; desplegarla en una pantalla LCD.
DHT dht(ldht,DHT22); En este caso se rogramaron ambos sensores, en el caso del
DHT11 se utilizan librerias DHT.h y DHT_U.h
// Declaracion de variables globales
float tempC; // Variable para almacenar el void loop()
valor obtenido del sensor (0 a 1023) {
int pinLM35 = 0; // Variable del pin de lm35();
entrada del sensor (A0) dhts();
}
void setup() {
lcd.begin(16, 2); //(columnas,filas) void lm35(){
dht.begin(); Suma = 0;

//lcd.print("Practica 7: Temp"); for (int i=0; i<5; i++){


lcd.setCursor(0,1); Sensor = analogRead(A1);
lcd.print("Temp:" ); Temp = ((Sensor * 5000.0) / 1023) / 10;

pinMode(ventilador, OUTPUT); Suma = Temp + Suma;


delay(500);
}

//****************LCD**************** lcd.setCursor(0,0);
lcd.setBacklightPin(3,POSITIVE); lcd.print("******LM35******");
lcd.setBacklight(HIGH); lcd.setCursor(7,1);
lcd.begin(16,2); lcd.print(Suma/5.0,1);
lcd.clear(); lcd.print(" C ");
lcd.setCursor(0,0);
lcd.print("La velocidad es:"); }
//****************LCD****************
} void dhts(){
tdht=dht.readTemperature();
lcd.setCursor(0,0);
lcd.print("******DHT22*****");
IV-B. Objetivo 1 lcd.setCursor(7,1);
Medir temperatura con un termistor y desplegarla en lcd.print(tdht);
lcd.print(" C ");
una pantalla LCD. delay(500);

Para este sistema de temperatura, utiizaremos los }


coeficientes de Steinhart-Hart

void loop() IV-D. Objetivo 3


{ Activar un ventilador si la temperatura es mayor a 26
Termistor(); °C y apagarla si es menor a 26 °C.
}
En este caso nada más es necesario poner un límite al cual
void Termistor(){ queremos que se encienda el ventilador. Con alguno de los
sthr = analogRead(A0); codigos anteriores, pero en este caso se uso el de el termistor
thrsensor= r*(1023.0/(float)sthr-1.0); ya que fue el que nos dió mejores rangos.
logthr=log(thrsensor);
thr = void loop()
(1.0/(c1+c2*(logthr)+c3*pow(logthr,3))); {
thr=thr-273.15; Pote();
lcd.setCursor(0,0); }
3

[3] [H] Wire - Arduino Reference. (s.f.). Re-


void Pote(){ cuperado 21 de septiembre de 2022, de
pp = analogRead(A3); https://www.arduino.cc/reference/en/language/functions/communication/wire/
[H] designthemes. (2022, 5 marzo). Motores paso a paso: 28BYJ-48. Tien-
if(pp < 310){ da y Tutoriales Arduino. Recuperado 28 de septiembre de 2022, de
https://www.prometec.net/motor-28byj-48/
Termistor();
}

if( pp >=310&pp<620){
lcd.clear();
lm35();
}
if(pp >=620 ){
dhts();
}
}

void Vent(float temp){


if(temp>=27.0){
digitalWrite(ventilador, HIGH);
}else{
digitalWrite(ventilador, LOW);
}
}

V. C ONCLUSIONES
V-A. Fonseca Uribe Oswaldo Emmanuel
El motor paso a paso es una herramienta muy útil a la hora
de tratar con sistemas que requieran engranajes o diferentes
aplicaciones de un giro controlado. El funcionamiento y su
programación es bastante sencillo, el problema es a la hora
de la calibración de sus revoluciones y tiempos, pero es
un buen ejercicio para mostrar que una cosa es basarse en
conocimientos puramente teóricos y otro es poner en práctica
los mismos, como lo fue medir tiempo de las instrucciones
en el código o conocer los ciclos en los que se da una vuelta
completa.

V-B. Muñoz González Raúl Gilberto


Esta práctica en general fue rápida a exepción de que los
sensores de temperatura se dañan fácilmente, por lo que pen-
sabamos que había un problema con el codigo, pero la realidad
es que los sensores estaban dañados, sin embargo la generación
de este código fue realmente sencillo, sobre todo del sensor
DHT11, ya que las funciones arrojan directamente los valores
de temperatura. Sin embargo los otros sistemas únicmanete
es emlear una ecuación que logre convertir los valores de la
señal. Es interesante aprender a realizar cosas que se pueden
utilizar en la vida cotidina y buscarles una adaptación para
estar en ciertos lugares, siendo más económicos.

R EFERENCIAS
[1] [H] Arduino. (2022). Arduino Reference.
https://www.arduino.cc/reference/en/?}_gl=1*11hrmjr*_ga*MTU0MDY3
NzA5MC4xNjYwNzAwNDA2*_ga_NEXN8H46L5*MTY2MDcwMDQw
NS4xLjEuMTY2MDcwMDQyMC40NS4wLjA.

[2] [H] A Guide to Arduino & the I2C Protocol (Two Wire). (s.f.).
Arduino Documentation. Recuperado 21 de septiembre de 2022, de
https://docs.arduino.cc/learn/communication/wire

También podría gustarte