Beruflich Dokumente
Kultur Dokumente
((
R =R e
INTRODUCCIN
R= Ae T
Donde A y B son constantes que dependen del
resistor. Estas constantes estn dadas por el
fabricante y se encuentran en el datasheet
disponible en la web. Las constantes A y B son:
))
Donde:
T = Temperatura a medir.
II. LA NTC
La relacin entre la resistencia y la temperatura
en la NTC no es lineal sino exponencial. Dicha
relacin cumple con la frmula siguiente:
1 1
T T0
III.
HARDWARE
B.
IV.
SOFTWARE
= 0.0;
// [K]
salida en Kelvin
= 0.0;
// [C]
salida en Celsius
pines de
OUTPUT);
OUTPUT);
OUTPUT);
OUTPUT);
OUTPUT);
Serial.println("----------------------------------------------");
Serial.println();
Serial.print("AJUSTE DE
TEMPERATURA MINIMA A ");
Serial.print(tempMin);
Serial.println(" GRADOS
CELSIUS");
Serial.println();
Serial.println("----------------------------------------------");
El Serial.println() envia por puerto serie
cualquier cosa que se incluya dentro de ( ), si es
una variable, con poner el nombre de la variable
es suficiente, como se puede ver con tempMin,
pero tambin se puede mandar cualquier texto,
siempre que se incluya entre comillas.
Se introducen las funciones que calcularn la
temperatura de la NTC
//Primero la Vout del divisor
Vout=(Vin/1024)*(analogRead(analo
gPin1));
tempMin =
analogRead(analogPin2);
A continuacin se tiene una nueva instruccin:
tempMin = map (tempMin, 0,
1023, -100, 800);
La funcin map tiene la siguiente estructura:
map(valor, fromLow, fromHigh, toLow, toHigh)
Esta estructura convierte los calores que van de 0
a 1023 en valores escalonados y proporcionados
desde -100 has 800. Con esto se adapta la lectura
del potencimetro a un rango de -100 a 800,
Luego se divide este valor en 10
tempMin = tempMin/10;
La temperatura que se devuelve es la de
referencia o crtica y est entre -10.0 y +80.0,.
La temperatura de disparo se puede ajustar con
una precisin de 0.1.
//Ahora la resistencia de la
NTC
Rntc=(Vout*Rfija)/(Vin-Vout);
//Y por ltimo la temperatura
en Kelvin
TempK = Beta/(log(Rntc/R25)+
(Beta/T0));
//Ahora la pasamos a celsius
TempC = TempK-273.15;
Se envan por el puerto serie:
Serial.println();
Serial.print("LA TEMPERATURA DE
LA NTC ES DE ");
Serial.print(TempC);
Serial.println(" GRADOS
CELSIUS");
Serial.println();
El delay que se pone al final es para que mande
los datos de temperatura 500 milisegundos por el
puerto serie.
delay(500);
V.
BAQUELA Y CAJA DE
PROTECCIN
VI.
COSTOS
VIII.
$70 000
$7 000
$4 000
$500
$500
$300
$ 6 000
$ 6 000
$ 9 000
Total
$103 300
VII.
APLICACIONES
REFERENCIAS
[1]
(2012) Sensores de temperatura. [Online].
Disponible en: http://www.antirrobo.net/sensores/sensoresde-temperatura. html
[2]
(2012) formato IEEE para presentar artculos.
[Online].
Disponible
en
http://www.cidca.edu.co/Formato_IEEE/
Formato
_Articulos_IEEE.pdf
[3]
R. C. Dorf y J. A. Svodoba. Circuitos elctricos,
sexta edicin. 2006
los LED
8;
9;
10;
11;
12;
int escala = 2;
//Variable para la temperatura de disparo
double tempMin = 0.0;
//Datos para las ecuaciones
float
float
float
float
float
Vin = 5.0;
Rfija = 1000;
R25 = 2800;
Beta = 3900.0;
T0 = 293.15;
// [V]
// [ohm]
// [ohm]
// [K]
// [K]
// [V]
// [ohm]
// [K]
// [C]
void setup() {
//Comienza la comunicacin puerto serie
Serial.begin(9600);
//Declaracin de
pinMode(pinLed1,
pinMode(pinLed2,
pinMode(pinLed3,
pinMode(pinLed4,
pinMode(pinLed5,
pines de salida
OUTPUT);
OUTPUT);
OUTPUT);
OUTPUT);
OUTPUT);
Vout=(Vin/1024)*(analogRead(analogPin1));
//Ahora la resistencia de la NTC
Rntc=(Vout*Rfija)/(Vin-Vout);
//Y por ltimo la temperatura en Kelvin
TempK = Beta/(log(Rntc/R25)+(Beta/T0));
//de kelvin a Celsius
TempC = TempK-273.15;
//se muestra por puerto serie
Serial.println();
Serial.print("LA TEMPERATURA DE LA NTC ES DE ");
Serial.print(TempC);
Serial.println(" GRADOS CELSIUS");
Serial.println();
//Ahora las comparaciones para las salidas
if(TempC < tempMin)
{
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
}
else if (((TempC <= (tempMin + escala)) & (TempC > tempMin)))
{
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
}
else if (((TempC<=(tempMin+(escala*2)))&(TempC>tempMin+escala)))
{
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
}
else if ((TempC<=(tempMin+(escala*3)))&(TempC>tempMin+(escala*2)))
{
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, LOW);
}
else if (TempC > (tempMin + (escala*4)))
{
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
}