Integrantes:
Oscar Martínez González.
Aldo Daniel Reyes Carrillo.
Jaqueline Guadalupe Simón Gaspar.
Grado y Grupo: 00606ª.
Turno: Matutino.
Materia: Programación de sistemas embebidos.
Profesor: Alfredo Netzahualcóyotl Torres López.
CONTROL
TEMPERATURA
Primeramente, en nuestro Arduino uno presionamos el botón incorporado para realizar reset a todo
el circuito para empezar desde 0 todo el proceso.
En la pantalla LCD 16x2 se imprime por unos segundos el mensaje de “Iniciar…” antes de mostrar
cualquier otro valor de referencia.
Una vez que termina de cargar el Inicio, un potenciómetro de 10 k se encarga de la opacidad del
LCD para poder ver mejor los datos que se están enviando desde el Arduino haciendo que el mensaje
sea o más claro o menos claro.
Con el segundo potenciómetro, se encargará de mandar a la LCD un rango de temperatura que se
necesita sobrepasar o no sobrepasar de los datos que recibe el sensor TMP36 junto a una resistencia
de potencia de 5 watts 22 ohm que fungirá como el dato a recibir de temperatura.
Una vez que la temperatura de referencia este establecida, tocara poner en la porta pilas, 4 pilas
doble A para empezar a calentar la resistencia de potencia para empezar a aumentar el valor de
temperatura o en dado caso disminuir la temperatura para que el sensor registre esa temperatura.
Todo el circuito estará conectado a un relay de 5 V junto con un transistor 2N3904 el cual fungirá
como receptor de la energía para transformarla a un voltaje óptimo para el LED de color rojo por
medio de 2 resistencia una de 1 Kohms y otra de 220 ohms.
Tras que la temperatura llegue por encima de la referencia de temperatura que establecimos con
el potenciómetro, el LED simplemente se apagara en base al cambio de voltaje que da el relay, se
tuvo que retirar el reley ya que generaba un problema de corriente y por ende generaba un corto
al momento de subir la temperatura del sensor de temperatura a la temperatura de referencia.
Firma de practica
Diagrama proteus
Código IDE Arduino
#define RS 8
#define EN 9
#define D7 10
#define D6 11
#define D5 12
#define D4 13
#define CTRL 4
#define deg 223
#define zero 50
#define data2mV 0.4887
#include <LiquidCrystal.h>
LiquidCrystal lcd(RS, EN, D4, D5, D6, D7);
bool stControl = 0;
int adcValue = 0;
float T = 0, Tref = 0;
void setup() {
// put your setup code here, to run once:
lcd.begin(16,2);
lcd.print("Iniciar...");
delay(2000);
lcd.clear();
lcd.print("Tref= ");
lcd.setCursor(0,1);
lcd.print("T = ");
pinMode(CTRL,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
adcValue = analogRead(A0);
T = float (adcValue) * data2mV-zero;
adcValue = analogRead(A2);
Tref = float(adcValue) * data2mV-zero;
lcd.setCursor(7,0);
lcd.print(Tref);
lcd.write(" ");
lcd.write(deg);
lcd.print("C ");
lcd.setCursor(7,1);
lcd.print(T);
lcd.write(" ");
lcd.write(deg);
lcd.print("C ");
if(T<=0.9*Tref)
stControl=1;
if(T>=1.1*Tref)
stControl=0;
digitalWrite(CTRL,stControl);
delay(50);
}