UPIITA-IPN Materia: Sensores Automotrices y Acondicionadores de Señal
Práctica No. 2. Sensores de Temperatura Número de Equipo: 4
1) Hernández Cruz Luis Eduardo Nombre del Equipo: Mechanics and Electronics
2) Salinas Soria Erik Grupo: 7SM1
3) Suárez Alvarado César Omar
Resumen
En la siguiente práctica se lleva a cabo la
aplicación del uso de amplificadores
operacionales en la aplicación de instrumentos de
medición para dispositivos electromecánicos,
termodinámicos, maquinaria. En este caso uno ve
como cada dispositivo necesita algún tipo de
sistema de control, desde compuertas lógicas,
contadores binarios, convertidores analógico-
digital y micro controladores. La principal
función es advertirle al usuario, los cambios que
se detecten en su zona de ubicación.
Los sensores, varían según su necesidad, en
algunos casos, son interruptores de estado sólido,
como las resistencias LDR, en caso de sensar el
lux o la candela, los termistores NTC o PTC para
los cambios de temperatura que llegasen a sensar.
Las mediciones son necesarias para comprender
los comportamientos físicos, que deseamos
analizar y comprender para así poder
interpretarlos.
Por ello los sensores son las herramientas dentro
de los dispositivos de control que nos ayudan a
entender lo que deseamos que una maquina
realice, sin la necesidad de que haya un operador.
Abstract
A thermistor is a type of resistor whose resistance
varies significantly with temperature, more so
than in standard resistors. The word is a
portmanteau of thermal and resistor. Thermistors
are widely used as inrush current limiters,
temperature sensors, self-resetting overcurrent
protectors, and self-regulating heating elements.
A thermocouple is a temperature-measuring
device consisting of two dissimilar conductors
that contact each other at one or more spots. It
produces a voltage when the temperature of one
of the spots differs from the reference
temperature at other parts of the circuit.
Thermocouples are a widely used type of
temperature sensor for measurement and control
and can also convert a temperature gradient into
electricity.
Commercial thermocouples are inexpensive,
interchangeable, are supplied with standard
connectors, and can measure a wide range of
temperatures. In contrast to most other methods
of temperature measurement, thermocouples are
self-powered and require no external form of
excitation.
The main limitation with thermocouples is
accuracy; system errors of less than one degree
Celsius (°C) can be difficult to achieve.
The silicon bandgap temperature sensor is an
extremely common form of temperature sensor
(thermometer) used in electronic equipment. Its
main advantage is that it can be included in a
silicon integrated circuit at very low cost. The
principle of the sensor is that the forward voltage
of a silicon diode is temperature-dependent.
Introducción
Los sensores de temperatura, en una manera son
las herramientas dentro de los sistemas de control
que nos ayudan a entender cómo es que
funcionan dentro de los dispositivos, dado que si
uno se adentrara dentro de un sistema de control
y este no tuviera alguna manera de entender los
datos que se envían, la mayoría de entrada
analógica que por pulsos de voltaje regula un
control que necesitan cierto proceso de potencia,
filtrado y conversión de señal de un voltaje a un
pulso digital de lenguaje binario.
El uso de sensores de temperatura depende del
uso que uno le otorgue, de cierta manera uno
como diseñador, así como el tipo que se desee
utilizar, no solo por gusto del diseñador, sino
para poder satisfacer la necesidad que se necesite
cubrir.
Termistor
Un termistor es una resistencia que varía según la
temperatura que detecta, sin embargo el detectar
cambios es difícil de medir. Los termistores están
fabricados de manera que su resistencia cambia
drásticamente de tal manera que puedan cambiar
de 100 ohmios o más por grado centígrado.
Hay dos tipos de sensores dentro de los
termistores en este caso son los NTC y los tipo
PTC, en los primeros, a medida que aumenta la
temperatura, decrece su resistencia; en los
segundos a medida que aumenta la temperatura
en este caso aumenta la resistencia. Se suele usar
los sensores NTC para fijar patrones de
temperatura, los PTC son usados en ciertos casos
para protección de los circuitos ahogando la
corriente y protegiendo el sobrecalentamiento de
los circuitos.
Para medir el valor de la resistencia de un
termistor, dado el voltaje que otorgue, este nos
indicara la temperatura en donde nos
encontramos.
Cuando se detecta, el voltaje medido, está
aumentando, podremos deducir, por la lógica de
la Ley de Ohm, que la resistencia del Termistor
NTC está disminuyendo y, por tanto, que la
temperatura se encuentra en un claro aumento y
viceversa (si el voltaje disminuye es porque la
temperatura ha descendido). La relación exacta
entre el voltaje medido y la resistencia del
termistor se puede calcular de la misma manera
que ya vimos en el caso de las fotorresistencias,
mediante el desarrollo matemático:
Vmed = (Rpull/(Rpull+Rtermistor)).Vfuente
La relación entre la resistencia y la temperatura
en este tipo de sensores no es lineal sino
exponencial. Dicha relación cumple con la
fórmula siguiente:
Donde A y B son constantes que dependen del
resistor.
Esas constantes que nos da el fabricante son:
A: El valor resistivo para una temperatura en
concreto (en nuestro caso 2800Ω para 25º).
B: La Beta (Temperatura característica del
material entre 2000K y 4000K).
Cuando nos especifican estos datos, podemos
utilizar la ecuación anterior para calcular la
resistencia en una temperatura en particular:
La característica tensión-intensidad (V/I) de un
resistor NTC presenta un carácter peculiar, ya
que cuando las corrientes que lo atraviesan son
pequeñas, el consumo de potencia (R I2) será
demasiado pequeño para registrar aumentos
apreciables de temperatura, o lo que es igual,
descensos en su resistencia óhmica; en esta parte
de la característica la relación tensión-intensidad
será prácticamente lineal y en consecuencia
cumplirá la ley de Ohm.
Pero si seguimos aumentando la tensión aplicada
a la NTC, se llegará a un valor de intensidad en
que la potencia consumida provocará aumentos
de temperatura suficientemente grandes como
para que la resistencia disminuya
apreciablemente, incrementándose la intensidad
hasta que se establezca el equilibrio térmico.
Para evitar esto, la mejor manera de conectarlo a
nuestro microcontrolador es mediante un divisor
de tensión donde Vout va a ser prácticamente
lineal.
LM35
El LM35 es un sensor de temperatura integrado
de precisión, cuya tensión de salida es
linealmente proporcional a temperatura en ºC
(grados centígrados).
El LM35 por lo tanto tiene una ventaja sobre los
sensores de temperatura lineal calibrada en
grados Kelvin: que el usuario no está obligado a
restar una gran tensión constante para obtener
grados centígrados.
El LM35 no requiere ninguna calibración externa
o ajuste para proporcionar una precisión típica de
± 1.4 ºC a temperatura ambiente y ± 3.4 ºC a lo
largo de su rango de temperatura (de -55 a 150
ºC). El dispositivo se ajusta y calibra durante el
proceso de producción. La baja impedancia de
salida, la salida lineal y la precisa calibración
inherente, permiten la creación de circuitos de
lectura o control especialmente sencillos. El
LM35 puede funcionar con alimentación simple
o alimentación doble (+ y -).
Requiere sólo 60 µA para alimentarse, y bajo
factor de auto-calentamiento, menos de 0,1 ºC en
aire estático. El LM35 está preparado para
trabajar en una gama de temperaturas que abarca
desde los- 55 ºC bajo cero a 150 ºC, mientras que
el LM35C está preparado para trabajar entre -40
ºC y 110 ºC (con mayor precisión).
Características:
Calibrado directamente en grados Celsius
(Centígrados)
Factor de escala lineal de +10 mV / ºC
0,5ºC de precisión a +25 ºC
Rango de trabajo: -55 ºC a +150 ºC
Apropiado para aplicaciones remotas
Bajo costo
Funciona con alimentaciones entre 4V y 30V
Menos de 60 µA de consumo
Bajo auto-calentamiento (0,08 ºC en aire estático)
Baja impedancia de salida, 0,1W para cargas de
1mA.
El sensor de temperatura puede usarse para
compensar un dispositivo de medida sensible a la
temperatura ambiente, refrigerar partes delicadas
del robot o bien para analizar las temperaturas en
el transcurso de un trayecto de exploración.
Para hacernos un termómetro lo único que
necesitamos es un voltímetro bien calibrado y en
la escala correcta para que nos muestre el voltaje
equivalente a temperatura. Podemos conectarlo a
un conversor Analógico/Digital y tratar la medida
digitalmente, almacenarla o procesarla con un
µControlador o sim.
Termopar
Un termopar es un dispositivo de estado sólido
que se utiliza para convertir la energía en voltaje.
Consta de dos metales diferentes empalmados en
una juntura.
Pueden utilizarse como materiales para la
fabricación de termopares, tales como: hierro y
constantano, cobre y constantano o antimonio y
bismuto.
Los termopares se emplean como sensores de
temperatura e instrumentos semejantes a los
termómetros denominados pirómetros. En un
pirómetro, el voltaje producido por un termopar
origina que una corriente circule a través de un
medidor eléctrico, el cual se calibra para indicar
directamente el valor de la temperatura. Un
termopar puede colocarse en un horno; cuando
aumenta la temperatura en el horno, también
aumenta el voltaje que se genera en el termopar.
En consecuencia pasa más corriente por el
medidor. En tal caso, el medidor indica el
aumento de corriente como una temperatura
mayor. Con los pirómetros se puede medir con
mucha precisión, temperaturas que van desde
2700 hasta 10,800ºF (1,500 a 6,000ºC).
Un termopar no mide temperaturas absolutas,
sino la diferencia de temperatura entre el extremo
caliente y el extremo frío. Este efecto
termoeléctrico hace posible la medición de
temperatura mediante un termopar.
Tipos de Termopar.
Aunque existen más tipos de termopar estos son
los más comunes.
Generalmente los termopares se fabrican con
tubos protectores o termopozos, esta es con el fin
de proteger los alambres del termopar contra las
atmósferas corrosivas y las altas presiones.
Así como los límites de error:
Protección para Termopares.
Estos pueden ser con conexiones a proceso
roscadas NPT milimétricas o bridadas.
Acero inoxidable 304 o 316.
Hierro negro.
Carburo de silicio.
Cerámica silma.
Cerámica aluminia pura.
TF 220°C.
Inconel 600 y 625.
Incoloy 800. Hasteloy.
Caracterización del Termistor NTC.
TERMISTOR Resistencia Temperatura
13.8 10
13.5 10
13.6 10
13.5 10
13.4 10
13 10
13.1 10
13 10
12.5 15
12.7 15
12.4 15
12.2 15
12.9 15
12.3 15
12.4 15
11.9 15
11.8 20
11.5 20
11.7 20
11.3 20
11 20
11.1 20
11.3 20
10.9 20
10.62 24
10.69 24
10.64 24
10.68 24
10.72 24
10.5 24
10.63 24
10.2 24
8.93 30
8.68 30
8.5 30
8.45 30
8.76 30
8.3 30
8.79 30
8.41 30
6.98 35
6.74 35
6.5 35
6.57 35
6.44 35
6.82 35
6.67 35
6.79 35
5.88 40
5.94 40
5.5 40
5.38 40
5.66 40
5.45 40
5.86 40
5.27 40
5.69 45
5.63 45
5.64 45
5.86 45
5.74 45
5.71 45
5.37 45
5.61 45
4.95 50
4.92 50
4.66 50
4.79 50
4.84 50
4.39 50
4.73 50
4.56 50
4.6 50
Caracterización del sensor LM35.
LM35 Voltaje Temperatura
0.137 10
0.132 10
0.15 10
0.146 10
0.155 10
0.162 10
0.13 10
0.141 10
0.173 15
0.169 15
0.178 15
0.185 15
0.193 15
0.196 15
0.198 15
0.194 15
0.2 20
0.23 20
0.238 20
0.229 20
0.225 20
0.234 20
0.225 20
0.246 20
0.25 24
0.252 24
0.255 24
0.268 24
0.266 24
0.273 24
0.281 24
0.292 24
0.315 30
0.33 30
0.328 30
0.336 30
0.344 30
0.35 30
0.352 30
0.359 30
0.363 35
0.368 35
0.377 35
0.375 35
0.381 35
0.395 35
0.396 35
0.415 35
0.422 40
0.427 40
0.43 40
0.432 40
0.439 40
0.442 40
0.449 40
0.454 40
0.461 45
0.469 45
0.473 45
0.478 45
0.483 45
0.489 45
0.485 45
0.491 45
0.494 50
0.499 50
0.512 50
0.517 50
0.523 50
0.52 50
0.526 50
0.522 50
0.525 50
Caracterización Gráfica de los sensores a
trabajar.
LM35DZ:
0
0.1
0.2
0.3
0.4
0.5
0.6
0 20 40 60
LM35DZ
Voltaje
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
13.8 25 33 32.3
LM35DZ
Voltaje
Termistor NTC:
Desarrollo
1.- En el primer desarrollo, se tiene que realizar
un diseño de un circuito que tenga la tarea de
sensar los cambios de temperatura de un sensor
de temperatura, mediante un galvanómetro, el
cual tenga la capacidad de dar una lectura en la
cual este muestre los cambios. Se usara un sensor
LM35, el cual se linealizara y dará una precisión
del cambio de temperatura en el galvanómetro,
con escala de grados Celsius.
En este diseño se muestra un galvanómetro que
sirve como escala de medición en grados Celsius.
Para claro ejemplo se tiene el manejo, de este
dispositivo, con el uso de amplificadores
operacionales, este amplificara la ganancia del
sensor LM35, así desplazando la aguja y
censando la temperatura desde el LM35.
Aquí se ve como está configurado tanto el sensor
y el galvanómetro que da una temperatura
aproximada de alrededor, de unos 31oC.
Cuando se aplica un cambio de temperatura este
lo sensa y genera un aumento en el voltaje que se
le deja llegar al galvanómetro que no es más que
una herramienta de medición la cual, va
mostrando los cambios de temperatura.
0
5
10
15
0 20 40 60
Termistor NTC
Resistencia
0
5
10
15
13.8 25 33 32.3 43
Termistor NTC
Resistencia
Aquí se muestra un claro ejemplo de cómo
funciona este dispositivo, en el cual el voltaje de
salida del sensor, determina el incremento de la
temperatura con la relación al incremento del
voltaje de salida del sensor, que se amplificara
para tener una mayor ganancia y poder calibrar
nuestro Galvanómetro.
2.- En el segundo diseño, se tiene que realizar un
diseño de un sensor de temperatura, el cual
mostrara la leyenda de los cambios de
temperatura, en una LCD, dado los grados
Celsius y Fahrenheit, la temperatura que sensa y
los cambios que podría llegar a sensar, dado que
el LCD, será la muestra de un circuito digital.
Se muestra que el dispositivo deberá ser
conectado a un microcontrolador Arduino, el cual
procesara la señal analógica, del sensor y este
será llevado a un proceso matemático el cual
convertirá las variaciones de voltaje en pulsos, y
estos son tratados como datos dentro del
microprocesador, al final obtendremos los
valores los cuales imprimiremos en nuestra
leyenda dentro de la LCD.
Se muestra que el dispositivo deberá ser
conectado a un microcontrolador Arduino, el cual
procesara la señal analógica, del sensor y este
será llevado a un proceso matemático el cual
convertirá las variaciones de voltaje en pulsos, y
estos son tratados como datos dentro del
microprocesador, al final obtendremos los
valores los cuales imprimiremos en nuestra
leyenda dentro de la LCD.
La imagen muestra la conexión de la placa
Arduino, y sus componentes los cuales muestran
como la señal de entrada del LM35, ubicada en el
Pin A0, envía la señal detectada por el sensor.
ARDUINO MEGA
CCT001
D35
D34
D33
D32
D31
D30
D29
D28
D27
D26
D25
D24
D23
D22
A5
A4
A3
A2
A1
A0
RESET
GND
POWER1K
VCC1
GND1
VCC1
GND1
L 1K
D36
D37
D38
D39
D40
D41
D42
D43
D44
D45
D46
D47
D48
D49
D50
D51
D52
D53
A6
A7
A8
A9
A11
A12
A10
A13
A14
A15
P13
P12
P11
P10
P8
P9
P7
P6
P5
P4
P3
TX
RX
RX1
RX2
TX1
TX2
TX3
RX3
SDA
SCL
AREF
(SCK)
(SS)
(MISO)
(MOSI)
27.0
3
1
VOUT2
U3
LM35
D7
14
D6
13
D5
12
D4
11D
310
D2
9D
18
D0
7
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM016L
RV1
10K
Ahora se mostrara el código:
#include <LiquidCrystal.h>//Incluir esta librería para poder usar el lcd.
LiquidCrystal lcd(12,11,5,4,3,2); //Definimos la pantalla LCD
float tempC;
float tempF;
int tempPin = 0; // Definimos la entrada en pin A0
char Grados = 'º';
void setup()
// Abre puerto serial y lo configura a 9600 bps
Serial.begin(9600);
lcd.begin(16,2);
pinMode(13,OUTPUT);
digitalWrite(13, HIGH); //Activamos la retroiluminación
void loop()
// Lee el valor desde el sensor
tempC = analogRead(tempPin);
// Convierte el valor a temperatura
tempC = (5.0 * tempC * 100.0)/1024.0;
//Grados Farenheitt
tempF = (1.8*tempC)+32;
// Envia el dato al puerto serial
Serial.print("Grados: ");
Serial.print(tempC);
Serial.print(Grados);
Serial.println("C");
Serial.print(tempF);
Serial.print(Grados);
Serial.println("F");
//Mostramos los grados en la pantalla LCD
lcd.setCursor(0,0);//Con este comando decimos en que línea queremos escribir
lcd.print("Grados: ");
lcd.print(tempC);
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print("Grados: ");
lcd.print(tempF);
lcd.print(" F");
// Espera cinco segundo para repetir el loop
delay(1000);
En si el diseño es en parte una aplicación de un
sensor, el cual sería de apoyo y uso en casos
como el de hogares, domicilios, oficinas etc. los
cuales a veces necesitan de un sistema de
medición en este caso de temperatura. En esta
imagen se muestra el proyecto ya realizado.
Dado que su precisión es una de las mejores en
este tipo de dispositivos, se maneja la precisión
de ser un buen sensor de temperatura ambiente.
Pero también sensa los cambios de temperatura.
En ello se muestra el cambio de temperatura de
alrededor de 24.5oC a una temperatura de más de
107.4oC, al pasarle una llama sobre su superficie,
realizando los cálculos correspondientes, se
analizan los pulsos analógicos que son
transformados en bits y mostrados en la pantalla.
Al final se muestra su eficiencia para sensar
temperaturas menores a la del ambiente del lugar.
3.- Para este diseño, se tiene un diseño, de
controlador Analógico-Digital, el cual la entrada
de una señal analógica de poco voltaje, activara
la conversión de señales en la cual mandara
pulsos cuadrados digitales, los cuales
encenderán, cada uno de los leds dentro de los
vummers de una escala de 10oC a 100
oC.
En este diseño, se realiza algo parecido al diseño
anterior, pero en vez de enviar una leyenda de
cuando cambia el valor de la temperatura se
encenderá una de las líneas de los vummers,
hasta que se llegue al máximo establecido por el
proveedor.
Aquí se muestra la simulación del proyecto el
cual cuenta con un vummer, conectado a 10
salidas de Arduino, las cuales mediante una
sentencia de condición encenderán cada una de
las líneas del vummer, las cuales se encenderán
al incremento de la temperatura y se apagaran al
decremento de la misma.
Para que se enciendan cada uno de las líneas de
los vummers analizaremos el código usado:
ARDUINO MEGA
CCT001
D35
D34
D33
D32
D31
D30
D29
D28
D27
D26
D25
D24
D23
D22
A5
A4
A3
A2
A1
A0
RESET
GND
POWER1K
VCC1
GND1
VCC1
GND1
L 1K
D36
D37
D38
D39
D40
D41
D42
D43
D44
D45
D46
D47
D48
D49
D50
D51
D52
D53
A6
A7
A8
A9
A11
A12
A10
A13
A14
A15
P13
P12
P11
P10
P8
P9
P7
P6
P5
P4
P3
TX
RX
RX1
RX2
TX1
TX2
TX3
RX3
SDA
SCL
AREF
(SCK)
(SS)
(MISO)
(MOSI)
12345678
20
19
18
17
16
15
14
13
912
10
11
U2LED-BARGRAPH-RED
27.0
3
1
VOUT2
U3
LM35
R4220
R5220
R6220
R7220
R8220
R9220
R10220
R11220
R12220
R13220
ARDUINO MEGA
CCT001
D35
D34
D33
D32
D31
D30
D29
D28
D27
D26
D25
D24
D23
D22
A5
A4
A3
A2
A1
A0
RESET
GND
POWER1K
VCC1
GND1
VCC1
GND1
L 1K
D36
D37
D38
D39
D40
D41
D42
D43
D44
D45
D46
D47
D48
D49
D50
D51
D52
D53
A6
A7
A8
A9
A11
A12
A10
A13
A14
A15
P13
P12
P11
P10
P8
P9
P7
P6
P5
P4
P3
TX
RX
RX1
RX2
TX1
TX2
TX3
RX3
SDA
SCL
AREF
(SCK)
(SS)
(MISO)
(MOSI)
12345678
20
19
18
17
16
15
14
13
912
10
11
U2LED-BARGRAPH-RED
100.0
3
1
VOUT2
U3
LM35
R4220
R5220
R6220
R7220
R8220
R9220
R10220
R11220
R12220
R13220
#include <math.h>
float tempC;
float tempF;
int tempPin = 0; // Definimos la entrada en pin A0
int PotPin = 1;
//Escala de Avisos
int escala = 5;
//Variable para la temperatura de disparo
double tempMin = 0.0;
const int analogOutPin = 9; // Salida para el Galvanómetro
int outputValue = 0; // valor de salida para PWM Galvanómetro(analog out)
//Pines para los LED
int pinLed1 = 8;
int pinLed2 = 9;
int pinLed3 = 10;
int pinLed4 = 11;
int pinLed5 = 12;
int pinLed6 = 13;
int pinLed7 = 14;
int pinLed8 = 15;
int pinLed9 = 16;
int pinLed10 = 17;
char Grados = 'º';
void setup()
// Abre puerto serial y lo configura a 9600 bps
Serial.begin(9600); //Declaramos pines de salida
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);
pinMode(pinLed4, OUTPUT);
pinMode(pinLed5, OUTPUT);
pinMode(pinLed6, OUTPUT);
pinMode(pinLed7, OUTPUT);
pinMode(pinLed8, OUTPUT);
pinMode(pinLed9, OUTPUT);
pinMode(pinLed10, OUTPUT);
//Y los pines de entrada
pinMode(tempPin, INPUT);
pinMode(PotPin, INPUT);
void loop()
// Lee el valor desde el sensor
tempC = analogRead(tempPin);
// Convierte el valor a temperatura
tempC = (5.0 * tempC * 100.0)/1024.0;
// Cambia el valor de salida de voltaje para el Galvanómetro:
analogWrite(tempPin, outputValue);
// Mapea el rango de temperatura del galvanómetro de acuerdo al voltaje otorgado:
outputValue = map(tempPin, 0, 1023, 0, 255);
//Primero leemos el potenciómetro
tempMin = analogRead(PotPin);
//Lo mapeamos a valores de -100 a 800
tempMin = map (tempMin, 0, 1023, -100, 800);
//Y lo dividimos entre 10 para darle un decimal
tempMin = tempMin/10;
//Grados Fahrenheit
tempF = (1.8*tempC)+32;
//Y lanzamos el ajuste establecido vía serie
Serial.println("-----------------------------------------------");
Serial.println();
Serial.print("AJUSTE DE TEMPERATURA MINIMA A ");
Serial.print(tempMin);
Serial.println(" GRADOS CELSIUS");
Serial.println();
Serial.println("-----------------------------------------------");
// Envia el dato al puerto serial
Serial.print("Grados: ");
Serial.print(tempC);
Serial.print(Grados);
Serial.println("C");
Serial.print(tempF);
Serial.print(Grados);
Serial.println("F");
//Ahora las comparaciones para las salidas
if(tempC < tempMin)
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
digitalWrite(pinLed6, LOW);
digitalWrite(pinLed7, LOW);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if (((tempC <= (tempMin + escala + 5)) & (tempC > tempMin)))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
digitalWrite(pinLed6, LOW);
digitalWrite(pinLed7, LOW);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if (((tempC<=(tempMin+(escala*3)+5))&(tempC>tempMin+escala+5)))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
digitalWrite(pinLed6, LOW);
digitalWrite(pinLed7, LOW);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if ((tempC<=(tempMin+(escala*5)+5))&(tempC>tempMin+(escala*3)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, LOW);
digitalWrite(pinLed6, LOW);
digitalWrite(pinLed7, LOW);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if ((tempC<=(tempMin+(escala*7)+5))&(tempC>tempMin+(escala*5)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed6, LOW);
digitalWrite(pinLed7, LOW);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if ((tempC<=(tempMin+(escala*9)+5))&(tempC>tempMin+(escala*7)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed6, HIGH);
digitalWrite(pinLed7, LOW);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if ((tempC<=(tempMin+(escala*11)+5))&(tempC>tempMin+(escala*9)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed6, HIGH);
digitalWrite(pinLed7, HIGH);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if ((tempC<=(tempMin+(escala*13)+5))&(tempC>tempMin+(escala*11)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed6, HIGH);
digitalWrite(pinLed7, HIGH);
digitalWrite(pinLed8, HIGH);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if ((tempC<=(tempMin+(escala*15)+5))&(tempC>tempMin+(escala*13)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed6, HIGH);
digitalWrite(pinLed7, HIGH);
digitalWrite(pinLed8, HIGH);
digitalWrite(pinLed9, HIGH);
digitalWrite(pinLed10, LOW);
else if (tempC > (tempMin + (escala*17)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed6, HIGH);
digitalWrite(pinLed7, HIGH);
digitalWrite(pinLed8, HIGH);
digitalWrite(pinLed9, HIGH);
digitalWrite(pinLed10, HIGH);
//Un pequeño delay para no volver loco al puerto serie
delay(2500);
Se analiza que se necesita de una sentencia “if”,
para cumplir las condiciones, a su vez este
encenderá cada una de las barras del vummer.
Dado la condición se muestra como solo se
encienden tres líneas, dado que apenas sensa el
cambio de temperatura cumpliendo la condición
de encenderse tres líneas si la temperatura es
mayor a 20oC.
En ésta imagen se muestra como rebasa los
100oC, esta situación cumple la condición del
cambio de temperatura al ser censada, la pequeña
flama que indica que se han alcanzado una
temperatura previamente mencionada.
Aquí se tiene el caso contrario, en el cual se llega
a la temperatura mínima, en este caso a una
temperatura menor a los 10oC, cumpliendo la
condición de solo encender una línea de los
vummers.
4.-Diseñar un circuito el cual active un ventilador
al alcanzar una temperatura de 50oC los cuales
servirán como señal de activación para encender
un ventilador de 12v.
Para el desarrollo de este proyecto, el cual
contiene el uso de un amplificador, se cuenta con
el apoyo, de un amplificador operacional y un
transistor el cual sirve como interruptor de estado
sólido.
5.-Diseñar un circuito el cual haga que funcione
un calefactor de agua, el cual que se mantenga el
agua entre 20oC y 30
oC, y no deje que aumente o
disminuya, la temperatura dentro de los rangos,
previamente establecido, dado que podrá ser
usado para establecer cierto confort en alguna
aplicación, personal.
Para este caso se tiene que usar un calefactor que
lleve una etapa de potencia, debido que el
dispositivo lleva una alimentación de 127v de
C.A la cual si no se aterriza bien podría dañar
nuestros componentes.
En esta imagen se muestra cómo es que se
configuro nuestro diseño y el cual cumple la
condición de cerrar el circuito de potencia,
siempre y cuando cumpla las condición de
encenderse cuando la temperatura del líquido o
agua no este entre los 20oC y no mayor a 30
oC, el
cual sirve como un calefactor para distintos usos.
Por ello para entenderlo mejor se analizara el
código:
ARDUINO MEGA
CCT001
D35
D34
D33
D32
D31
D30
D29
D28
D27
D26
D25
D24
D23
D22
A5
A4
A3
A2
A1
A0
RESET
GND
POWER1K
VCC1
GND1
VCC1
GND1
L 1K
D36
D37
D38
D39
D40
D41
D42
D43
D44
D45
D46
D47
D48
D49
D50
D51
D52
D53
A6
A7
A8
A9
A11
A12
A10
A13
A14
A15
P13
P12
P11
P10
P8
P9
P7
P6
P5
P4
P3
TX
RX
RX1
RX2
TX1
TX2
TX3
RX3
SDA
SCL
AREF
(SCK)
(SS)
(MISO)
(MOSI)
23.0
3
1
VOUT2
U3
LM35
L112V
RL112VD3
DIODE
Q1BC547
L1(2)
float tempC;
float tempF;
int tempPin = 0; // Definimos la entrada en pin A0
char Grados = 'º';
void setup()
// Abre puerto serial y lo configura a 9600 bps
Serial.begin(9600);
lcd.begin(16,2);
pinMode(13,OUTPUT);
digitalWrite(13, HIGH); //Activamos la retroiluminación
void loop()
// Lee el valor desde el sensor
tempC = analogRead(tempPin);
// Convierte el valor a temperatura
tempC = (5.0 * tempC * 100.0)/1024.0;
//Grados Farenheitt
tempF = (1.8*tempC)+32;
// Envia el dato al puerto serial
Serial.print("Grados: ");
Serial.print(tempC);
Serial.print(Grados);
Serial.println("C");
Serial.print(tempF);
Serial.print(Grados);
Serial.println("F");
if(20<tempC&&tempC<30)
digitalWrite(6,HIGH);
else
digitalWrite(6,LOW);
delay(1000);
Aquí se muestra una imagen, la cual se ve el
funcionamiento de cómo lo enciende y empieza a
conducir corriente sobre una resistencia eléctrica,
para calentar el agua.
Aquí se muestra en reposo a una temperatura
ambiente menor a 30oC, lo cual no genera que
cierre el circuito de potencia.
Se muestra como se genera la calefacción del
líquido en el recipiente, dado que este rompe la
barrera de la mínima de 20oC, lo que genera que
se encienda el calefactor, cuando este llegue a
superar la temperatura de 30oC se apagara.
Si se observa de manera atenta se muestra la
ebullición del agua al calentarse la resistencia,
debido al aumento de la corriente sobre la misma,
la cual generar un incremento exponencial de
alrededor de unos 5.7oC, cada minuto, se debe
establecer que la temperatura del fluido, en este
caso agua es de unos 2 a 3 grados Celsius menor
a la ambiente, dado a su composición física.
Dado, que se trabajó con un sensor, el cual ya
está linealizado la variación de voltaje, con la
temperatura que llega a sensar y a variar a la vez.
La última parte de esta práctica consistió en la
implementación de los circuitos anteriormente
descritos pero ahora con el uso de un Termistor
NTC.
6.- Para este diseño, se obtiene el uso del sensor
NTC, el cual se deberá linealizar, dentro del
rango de una temperatura promedio de 20oC, los
cuales se deberán dar una medición en el
galvanómetro, indicando una temperatura
aproximada.
Para linealizar al Termistor NTC, se debe
conectar dos resistencias en paralelo de valores
aproximados a 10kΩ y 4.7kΩ, de los cuales
regularan la señal del Termistor de un valor de
10kΩ, y se conectara una resistencia de 220Ω, la
cual conectada en serie para que la señal no se
llegue a perder en la caída de potencial.
Se tiene el uso de un Opamp, de uso genérico
LM358, el cual nos ayudara amplificar el voltaje
y su ganancia en la señal que envíe nuestro
Termistor NTC, el cual amplifica y genera la
variación del voltaje sobre el cual se muestra en
el galvanómetro.
Aquí se muestra al diseño, en funcionamiento,
con lo cual este llega a sensar la temperatura de
la habitación, (ese día la temperatura promedio
ambiente era alrededor de unos 12oC)
estableciendo una lectura de 14oC en el ambiente
de la habitación.
Ya en esta imagen muestra el incremento, que se
tiene al acercarse la flama de un mechero, este
llega a sensar la temperatura y para elevar su
aguja este tiende a reducir la resistividad misma
de los materiales que lo compone, en este caso el
retraso, con un medidor patrón es mínimo ya que
es casi instantánea la variabilidad de su
resistencia así como sus cambio.
7.- En este diseño, se debe de usar un sensor
NTC, para que muestre una leyenda en una LCD,
el cual indique las temperaturas, tanto en grados
Celsius y grados Fahrenheit, y muestre la
temperatura que sensa alrededor.
Para este caso, se tiene que el NTC mandara
señales analógicas de variación de voltaje, la cual
se hacen ajustes dentro de los códigos, en el
microcontrolador el cual reproducirá, una
leyenda con los posibles cambios de temperatura
que llegue a sentir.
Aquí está el código, el cual muestra cómo se
debe linealizar el código, con las resistencias
pull-up, dentro del microprocesador:
ARDUINO MEGA
CCT001
D35
D34
D33
D32
D31
D30
D29
D28
D27
D26
D25
D24
D23
D22
A5
A4
A3
A2
A1
A0
RESET
GND
POWER1K
VCC1
GND1
VCC1
GND1
L 1K
D36
D37
D38
D39
D40
D41
D42
D43
D44
D45
D46
D47
D48
D49
D50
D51
D52
D53
A6
A7
A8
A9
A11
A12
A10
A13
A14
A15
P13
P12
P11
P10
P8
P9
P7
P6
P5
P4
P3
TX
RX
RX1
RX2
TX1
TX2
TX3
RX3
SDA
SCL
AREF
(SCK)
(SS)
(MISO)
(MOSI)
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9D
18
D0
7
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM016L
RV1
10K
+tc25.00
RT2KTY81
R410k
RV2
10K
//Añadimos la librería math.h
#include <math.h>
#include <LiquidCrystal.h> //Incluir esta librería para poder usar el lcd
LiquidCrystal lcd(12,11,5,4,3,2); //Definimos la pantalla LCD
//Pines para las entradas analógicas
int tempPin = 0;
int PotPin = 1;
//Variable para la temperatura de disparo
double tempMin = 0.0;
//Datos para las ecuaciones
float Vin = 5.0; // [V] Tensión alimentación del divisor
float Rfija = 200.0; // [ohm] Resistencia fija del divisor
float R25 = 2800; // [ohm] Valor de NTC a 25ºC
float Beta = 3977.0; // [K] Parámetro Beta de NTC
float T0 = 293.15; // [K] Temperatura de referencia en Kelvin
float Vout = 0.0; // [V] Variable para almacenar Vout
float Rntc = 0.0; // [ohm] Variable para NTC en ohms
float TempK = 0.0; // [K] Temperatura salida en Kelvin
float TempC = 0.0; // [ºC] Temperatura salida en Celsius
float tempF;
char Grados = 'º';
void setup()
// Abre puerto serial y lo configura a 9600 bps
Serial.begin(9600);
lcd.begin(16,2);
pinMode(13,OUTPUT);
digitalWrite(13, HIGH); //Activamos la retroiluminación
void loop()
//Primero leemos el potenciómetro
tempMin = analogRead(PotPin);
//Lo mapeamos a valores de -100 a 800
tempMin = map (tempMin, 0, 1023, -100, 800);
//Y lo dividimos entre 10 para darle un decimal
tempMin = tempMin/10;
//Y lanzamos el ajuste establecido vía serie
Serial.println("-----------------------------------------------");
Serial.println();
Serial.print("AJUSTE DE TEMPERATURA MINIMA A ");
Serial.print(tempMin);
Serial.println(" GRADOS CELSIUS");
Serial.println();
Serial.println("-----------------------------------------------");
//Y ahora calculamos la Temperatura
//Primero la Vout del divisor
Vout=(Vin/1024)*(analogRead(tempPin));
//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));
//Y ahora la pasamos a Celsius
TempC = TempK-273.15;
//Grados Fahrenheit
tempF = (1.8*TempC)+32;
//Y lo mostramos por puerto serie
Serial.println();
Serial.print("LA TEMPERATURA DE LA NTC ES DE ");
Serial.print(TempC);
Serial.print(Grados);
Serial.println("C");
Serial.print(tempF);
Serial.print(Grados);
Serial.println("F");
//Mostramos los grados en la pantalla LCD
lcd.setCursor(0,0);//Con este comando decimos en que línea queremos escribir
lcd.print("Grados: ");
lcd.print(TempC);
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print("Grados: ");
lcd.print(tempF);
lcd.print(" F");
delay(1500);
Al concluir el programa el resultado que se tiene
es la temperatura censada, por el Termistor NTC,
con el cual se desempeña la leyenda del cual
muestra los cambios de temperatura, tanto en
grados Celsius y Fahrenheit.
Dado la precisión de este tipo de sensor, no tiene
mucho problema con empatar con el medidor
patrón para determinar si este se encuentra bien
calibrado, y si así es la condición que se cumple
al haberlo linealizado este deberá dar una
condición de precisión.
Si uno llegara a variar la temperatura, este
respondería de manera rápida, cambiando los
valores de las temperaturas a su alrededor.
Pero a la vez este es capaz de realizar los
cambios de temperatura, cuando se le introduce a
una superficie que tiene menor temperatura, la
cual muestra cómo llega a cambiar los valores
descendiendo de casi 90oC, a solo 10
oC.
Esta tendrá la capacidad de descender, hasta casi
0oC, lo cual mantiene la relación de que sigue la
relación de disminuir la temperatura del sensor.
8.- Se deberá realizar un diseño de un circuito
Analógico-Digital, en la cual la entrada deberá
ser un sensor NTC, y a la salida deberá estar un
vummer, el cual se ira de una señal analógica de
variación de voltaje a una digital la cual active
mediante pulsos, los leds del vummer de un
rango de 10oC a 100
oC.
Aquí se empieza, con el configurar el vummer,
de tal manera que este valla encendiendo, cada
una de las líneas, al cambiar la temperatura, ya
que este va a sensar el cambio en su alrededor y
cada luz que se enciende indica un incremento.
Como los circuitos anteriores se muestra como
reaccionara el sensor a los cambios de
temperatura, en el caso de la imagen muestra
como la temperatura debe variara entre los 25 a
29oC, esto es fácil de deducir gracias a que el
código que muestra solo tres líneas en el
vummer.
El código, de este diseño, es el siguiente:
ARDUINO MEGA
CCT001
D35
D34
D33
D32
D31
D30
D29
D28
D27
D26
D25
D24
D23
D22
A5
A4
A3
A2
A1
A0
RESET
GND
POWER1K
VCC1
GND1
VCC1
GND1
L 1K
D36
D37
D38
D39
D40
D41
D42
D43
D44
D45
D46
D47
D48
D49
D50
D51
D52
D53
A6
A7
A8
A9
A11
A12
A10
A13
A14
A15
P13
P12
P11
P10
P8
P9
P7
P6
P5
P4
P3
TX
RX
RX1
RX2
TX1
TX2
TX3
RX3
SDA
SCL
AREF
(SCK)
(SS)
(MISO)
(MOSI)
12345678
20
19
18
17
16
15
14
13
912
10
11
U2LED-BARGRAPH-RED
R4220
R5220
R6220
R7220
R8220
R9220
R10220
R11220
R12220
R13220
+tc25.00
RT2KTY81
R1610k
RV2
10K
//Añadimos la librería math.h
#include <math.h>
//Pines para los LED
int pinLed1 = 14;
int pinLed2 = 15;
int pinLed3 = 16;
int pinLed4 = 17;
int pinLed5 = 18;
int pinLed6 = 19;
int pinLed7 = 20;
int pinLed8 = 21;
int pinLed9 = 22;
int pinLed10 = 23;
//Pines para las entradas analógicas
int tempPin = 0;
int PotPin = 2;
const int analogOutPin = 9; // Salida para el Galvanómetro
int outputValue = 0; // valor de salida para PWM Galvanómetro(analog out)
//Escala de Avisos
int escala = 5;
//Variable para la temperatura de disparo
double tempMin = 0.0;
//Datos para las ecuaciones
float Vin = 5.0; // [V] Tensión alimentación del divisor
float Rfija = 200.0; // [ohm] Resistencia fija del divisor
float R25 = 2800; // [ohm] Valor de NTC a 25ºC
float Beta = 3977.0; // [K] Parámetro Beta de NTC
float T0 = 293.15; // [K] Temperatura de referencia en Kelvin
float Vout = 0.0; // [V] Variable para almacenar Vout
float Rntc = 0.0; // [ohm] Variable para NTC en ohms
float TempK = 0.0; // [K] Temperatura salida en Kelvin
float TempC = 0.0; // [ºC] Temperatura salida en Celsius
float tempF;
char Grados = 'º';
void setup()
//Comenzamos la comunicación puerto serie
Serial.begin(9600);
//Declaramos pines de salida
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);
pinMode(pinLed4, OUTPUT);
pinMode(pinLed5, OUTPUT);
pinMode(pinLed6, OUTPUT);
pinMode(pinLed7, OUTPUT);
pinMode(pinLed8, OUTPUT);
pinMode(pinLed9, OUTPUT);
pinMode(pinLed10, OUTPUT);
//Y los pines de entrada
pinMode(tempPin, INPUT);
pinMode(PotPin, INPUT);
void loop()
//Primero leemos el potenciómetro
tempMin = analogRead(PotPin);
//Lo mapeamos a valores de -100 a 800
tempMin = map (tempMin, 0, 1023, -100, 800);
//Y lo dividimos entre 10 para darle un decimal
tempMin = tempMin/10;
//Y lanzamos el ajuste establecido vía serie
Serial.println("-----------------------------------------------");
Serial.println();
Serial.print("AJUSTE DE TEMPERATURA MINIMA A ");
Serial.print(tempMin);
Serial.println(" GRADOS CELSIUS");
Serial.println();
Serial.println("-----------------------------------------------");
//Y ahora calculamos la Temperatura
//Primero la Vout del divisor
Vout=(Vin/1024)*(analogRead(tempPin));
//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));
//Y ahora la pasamos a Celsius
TempC = TempK-273.15;
//Grados Farenheitt
tempF = (1.8*TempC)+32;
// change the analog out value:
analogWrite(tempPin, outputValue);
// map it to the range of the analog out:
outputValue = map(tempPin, 0, 1023, 0, 255);
//Y lo mostramos por puerto serie
Serial.println();
Serial.print("LA TEMPERATURA DE LA NTC ES DE ");
Serial.print(TempC);
Serial.print(Grados);
Serial.println("C");
Serial.print(tempF);
Serial.print(Grados);
Serial.println("F");
//Ahora las comparaciones para las salidas
if(TempC < tempMin + escala)
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
digitalWrite(pinLed6, LOW);
digitalWrite(pinLed7, LOW);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if (((TempC <= (tempMin + (escala*2) + 5)) & (TempC > tempMin + escala)))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
digitalWrite(pinLed6, LOW);
digitalWrite(pinLed7, LOW);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if (((TempC<=(tempMin+(escala*4)+5))&(TempC>tempMin+(escala*2)+5)))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
digitalWrite(pinLed6, LOW);
digitalWrite(pinLed7, LOW);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if ((TempC<=(tempMin+(escala*6)+5))&(TempC>tempMin+(escala*4)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, LOW);
digitalWrite(pinLed6, LOW);
digitalWrite(pinLed7, LOW);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if ((TempC<=(tempMin+(escala*8)+5))&(TempC>tempMin+(escala*6)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed6, LOW);
digitalWrite(pinLed7, LOW);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if ((TempC<=(tempMin+(escala*10)+5))&(TempC>tempMin+(escala*8)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed6, HIGH);
digitalWrite(pinLed7, LOW);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if ((TempC<=(tempMin+(escala*12)+5))&(TempC>tempMin+(escala*10)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed6, HIGH);
digitalWrite(pinLed7, HIGH);
digitalWrite(pinLed8, LOW);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if ((TempC<=(tempMin+(escala*14)+5))&(TempC>tempMin+(escala*12)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed6, HIGH);
digitalWrite(pinLed7, HIGH);
digitalWrite(pinLed8, HIGH);
digitalWrite(pinLed9, LOW);
digitalWrite(pinLed10, LOW);
else if ((TempC<=(tempMin+(escala*16)+5))&(TempC>tempMin+(escala*14)+5))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed6, HIGH);
digitalWrite(pinLed7, HIGH);
digitalWrite(pinLed8, HIGH);
digitalWrite(pinLed9, HIGH);
digitalWrite(pinLed10, LOW);
else if (TempC > (tempMin + (escala*17)+10))
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, HIGH);
digitalWrite(pinLed6, HIGH);
digitalWrite(pinLed7, HIGH);
digitalWrite(pinLed8, HIGH);
digitalWrite(pinLed9, HIGH);
digitalWrite(pinLed10, HIGH);
//Un pequeño delay para no volver loco al puerto serie
delay(2500);
Por ello, la condición de los cambios de
temperatura, se llegan a presentar, una de las
condiciones es que tenga una temperatura
mínima, que sirva de barrera, para que este
empiece a ejercer cambios, y se enciendan las
líneas de los vummers.
A su vez cuando deja de sensar los incrementos
de temperatura, este puede, regresar rápidamente
a su estado original o disminuir la temperatura
anterior o cercana previamente al incremento de
la temperatura de la llama.
A su vez muestra el decremento de la
temperatura censada por el NTC, el cual puede
medir temperaturas por lo menor a lo establecido
en el limitador. En el caso de la imagen inferior
se llega a temperaturas menores a los 10oC.
9.- En el siguiente diseño se tiene un sensor
NTC, el cual deberá activar un ventilador al
alcanzar una temperatura de 50oC la cual activara
el ventilador y al caer esa temperatura se activara
su estado de reposo.
En este diseño, se hace una sentencia que cumpla
la condición de encender un ventilador a 50oC,
mientras no llegue a esa temperatura no
encenderá.
Pero, al cumplir la condición, este se encenderá,
y activara al ventilador, el cual al llegar la
temperatura de 50oC, se encenderá.
Para entender su funcionamiento, debemos
marcar el código en Arduino, para su
funcionamiento:
#include <math.h>
int tempPin = 0;
int PotPin = 3;
double tempMin = 0.0;
float Vin = 5.0; // [V] Tensión alimentación del divisor
float Rfija = 200.0; // [ohm] Resistencia fija del divisor
float R25 = 2800; // [ohm] Valor de NTC a 25ºC
float Beta = 3977.0; // [K] Parámetro Beta de NTC
float T0 = 293.15; // [K] Temperatura de referencia en Kelvin
float Vout = 0.0; // [V] Variable para almacenar Vout
float Rntc = 0.0; // [ohm] Variable para NTC en ohms
float TempK = 0.0; // [K] Temperatura salida en Kelvin
float TempC = 0.0; // [ºC] Temperatura salida en Celsius
char Grados = 'º';
void setup()
Serial.begin(9600);
pinMode(6,OUTPUT);
void loop()
tempMin = analogRead(PotPin);
tempMin = map (tempMin, 0, 1023, -100, 800);
tempMin = tempMin/10;
Serial.println("-----------------------------------------------");
Serial.println();
Serial.print("AJUSTE DE TEMPERATURA MINIMA A ");
Serial.print(tempMin);
Serial.println(" GRADOS CELSIUS");
Serial.println();
Serial.println("-----------------------------------------------");
Vout=(Vin/1024)*(analogRead(tempPin));
Rntc=(Vout*Rfija)/(Vin-Vout);
TempK = Beta/(log(Rntc/R25)+(Beta/T0));
TempC = TempK-273.15;
if(TempC>50)
digitalWrite(6,HIGH);
else
digitalWrite(6,LOW);
Serial.println();
Serial.print("LA TEMPERATURA DE LA NTC ES DE ");
Serial.print(TempC);
Serial.print(Grados);
Serial.println("C");
delay(1000);
Al caer la condición de una temperatura menor
de 50oC, se vuelve apagar, cumpliendo con el
objetivo y la condición de trabajo.
10.- Diseñar un circuito el cual haga que
funcione un calefactor de agua, el cual que se
mantenga el agua entre 20oC y 30
oC, y no deje
que aumente o disminuya, la temperatura dentro
de los rangos, previamente establecido, dado que
podrá ser usado para establecer cierto confort en
alguna aplicación, personal. El sensor a utilizar
en este caso deberá ser un termistor NTC, el cual
activara el calentador al romper ese rango.
Como en el caso anterior del sensor LM35, se
debe encender cuando no este en la temperatura
de 20oC y mantenerse así, pero no sobrepasando
los 30oC.
Para comprender el funcionamiento de nuestro
diseño, debemos mostrar el código, del
microcontrolador, el cual se tiene en el código:
ARDUINO MEGA
CCT001
D35
D34
D33
D32
D31
D30
D29
D28
D27
D26
D25
D24
D23
D22
A5
A4
A3
A2
A1
A0
RESET
GND
POWER1K
VCC1
GND1
VCC1
GND1
L 1K
D36
D37
D38
D39
D40
D41
D42
D43
D44
D45
D46
D47
D48
D49
D50
D51
D52
D53
A6
A7
A8
A9
A11
A12
A10
A13
A14
A15
P13
P12
P11
P10
P8
P9
P7
P6
P5
P4
P3
TX
RX
RX1
RX2
TX1
TX2
TX3
RX3
SDA
SCL
AREF
(SCK)
(SS)
(MISO)
(MOSI)
L112V
RL112VD3
DIODE
Q1BC547
+tc25.00
RT2KTY81
R1610k
RV2
10K
#include <math.h>
int tempPin = 0;
int PotPin = 4;
double tempMin = 0.0;
float Vin = 5.0; // [V] Tensión alimentación del divisor
float Rfija = 200.0; // [ohm] Resistencia fija del divisor
float R25 = 2800; // [ohm] Valor de NTC a 25ºC
float Beta = 3977.0; // [K] Parámetro Beta de NTC
float T0 = 293.15; // [K] Temperatura de referencia en Kelvin
float Vout = 0.0; // [V] Variable para almacenar Vout
float Rntc = 0.0; // [ohm] Variable para NTC en ohms
float TempK = 0.0; // [K] Temperatura salida en Kelvin
float TempC = 0.0; // [ºC] Temperatura salida en Celsius
char Grados = 'º';
void setup()
Serial.begin(9600);
pinMode(6,OUTPUT);
void loop()
tempMin = analogRead(PotPin);
tempMin = map (tempMin, 0, 1023, -100, 800);
tempMin = tempMin/10;
Serial.println("-----------------------------------------------");
Serial.println();
Serial.print("AJUSTE DE TEMPERATURA MINIMA A ");
Serial.print(tempMin);
Serial.println(" GRADOS CELSIUS");
Serial.println();
Serial.println("-----------------------------------------------");
Vout=(Vin/1024)*(analogRead(tempPin));
Rntc=(Vout*Rfija)/(Vin-Vout);
TempK = Beta/(log(Rntc/R25)+(Beta/T0));
TempC = TempK-273.15;
if(20<TempC&&TempC<30)
digitalWrite(26,HIGH);
else
digitalWrite(26,LOW);
Serial.println();
Serial.print("LA TEMPERATURA DE LA NTC ES DE ");
Serial.print(TempC);
Serial.print(Grados);
Serial.println("C");
delay(1000);
Para ello el control del calefactor, debemos
entender que se conecta a un circuito de potencia,
el cual al cumplirse la condición encenderá al
circuito.
Por ello si por alguna razón no se llega a cumplir
la condición de que el agua se encuentre mayor a
20oC o menor a 30
oC, este deberá de encender al
calefactor.
COMENTARIOS:
Para esta práctica, la caracterización de
los sensores, fue de gran parte de cómo
entender cada uno de ellos, a su vez este
ejercicio, aplico previos conocimientos de
prácticas anteriores, en las cuales se
muestran en la linealización del NTC, o
como los cambios de voltaje indican un
cambio al afectar la temperatura que
sensa el circuito LM35, y como los
sensores termopares, llegan a ser los más
precisos, como ser usados de medida
patrón en la práctica.
Se usó el microcontrolador Arduino,
como sistema de control para algunos de
los diseños, debido a la facilidad que hay
dentro de su programación, por ello fue
de gran ayuda ya que el diseñar un
prototipo, con circuitos integrados, los
cuales nos ayudaran a realizar un circuito
más eficiente el cual nos hacía más
preciso en su utilización.
Por último, el uso de sensores, es una de
las maneras modernas, en que se llega a
controlar un proceso de automatización
como base de los parámetros, en los
cuales estos son determinados como los
rango que se desean controlar o tener una
información de lo que se trata de medir,
sensar o determinar como el rango, que
debe realizar un cambio o establecer una
condición, para cambiar el estado del que
se encuentra.
CONCLUSIONES:
De los sensores de temperatura empleados en
esta práctica se comprobaron las características
de cada uno de ellos, observando una gran
diferencia respecto a su velocidad de respuesta,
tal fue el caso del sensor LM35DZ que resultó
ser el más rápido de estos. Se tiene el
inconveniente de tener que hacer una
linealización para poder adecuar el
funcionamiento correcto del Termistor NTC; se
observó el problema con una diferencia de
alrededor de 3 grados en el circuito analógico con
su salida en un Galvanómetro.
Hernández Cruz Luis Eduardo
Se concluye que el uso de los sensores de
temperatura, nos ayuda a comprender cómo es
que cada componente electrónico se comporta de
manera diferente, que si uno quiere velocidad en
el cambio de la temperatura es un NTC el que se
debe usar, si se quiere linealidad y facilidad de
uso un LM35, en cuanto a precisión entre uno y
otro es de alrededor de 0.005 milésimas de
unidad Celsius.
Salinas Soria Erik Armando
Existen diferentes tipos de sensores de
temperatura con características específicas de
acuerdo a su aplicación, costo y materiales, lo
que los hace diferentes en cuanto a tiempo de
reacción o velocidad con la que censan los
cambios de temperatura. De los sensores
utilizados el LM35 resulto más eficaz a pesar de
tener una respuesta lenta, ya que el uso del
termistor se complicó ya que al linealizar el
dispositivo se tuvo un error mayor con respecto
al patrón de medida utilizado.
Suárez Alvarado César Omar
BIBLIOGRAFÍA:
“Sensores y acondicionadores de Señal”
Autor: Ramón Pallás Areny
4ª Edición
Editorial Marcombo
Págs. Consultadas: Capitulo 2.4 160-165
Arduino: Curso práctico de formación
Autor: Óscar Torrente Artero
1a Edición
Editorial Alfaomega
Págs. Consultadas: Capitulo 7. 423-428
Electrónica Analógica para Ingenieros
Autor: Jorge Pleite Guerra, Ricardo Vergaz
Benito, José Manuel Ruiz de Marcos
1ª Edición
Editorial McGraw-Hill
Págs. Consultadas: Tema 14, 17 327-351
Cibergrafía:
Título: Sensores NTC
http://www.arduteka.com/2011/12/componentes-
el-sensor-ntc/
Título: Sensor LM35
http://electronica.webcindario.com/componentes/
lm35.htm
http://www.x-robotics.com/sensores.htm#LM35
Título: Termopares
http://www.termokew.mx/termopares.php
Top Related