es gl es ca gl gl gl gl es gl en gl es en pt ceb es gl gl gl pt gl gl en hu gl gl gl gl gl gl fr gl en pt gl gl de gl en pt gl es da gl gl en es en gl es gl gl gl gl gl gl gl gl gl gl gl en gl es es gl gl gl pt es gl gl gl pt pt en gl ar es gl en en en gl gl gl ca gl ca gl gl gl gl gl gl gl gl it gl gl gl gl gl gl gl gl gl gl en it es es gl es gl es es gl pt en gl gl ca fr fr gl gl gl pt es sv es gl sv pt en gl hu en gl gl en gl it it es uk pt gl gl gl gl gl en gl gl es gl gl vi gl gl gl gl es es gl gl gl gl gl it gl es en en en gl en en en en gl en en en en gl
Sensor de temperatura LM35 e TMP36 – Arduino
Para poder medir a temperatura e realizar algunha acción en función do seu valor necesitamos un sensor capaz de medila.
Unha opción sinxela é utilizar un termistor, que non é máis ca unha resistencia que varía coa temperatura. Procederíase igual que no caso da LDR. Por exemplo, podemos utilizar a información que lemos na consola en función da temperatura para acender un ventilador cando a temperatura ambiental supere un determinado valor.
O problema de utilizar termistores é a calibración e a precisión, que non é moi boa, pois a resistencia dos termistores non varía de forma lineal coa temperatura.
[LM35 Nevit Dilmen CC BY-SA Wikimedia Commons]
Se desexamos ter precisión, unha opción interesante é utilizar chips que nos devolvan un valor de tensión proporcional á temperatura á que están sometidos (por exemplo, 10mV por cada grao centígrado).
Nesta práctica imos ver dúas opcións: LM35 e TMP36.
Sensor de temperatura LM35: Rango: 0V → 0ºC e 1.5V→150ºC
Sensor de temperatura TMP36: Rango: 0V → -50ºC, 0,5V→ 0ºC  e 1.75V → 125ºC
O LM35 é útil para medir temperaturas positivas, pois necesitaría tensións negativas para medir temperaturas por debaixo dos 0ºC e o Arduíno non pode ofrecelas. Se queremos medir temperaturas por debaixo dos 0ºC mellor utiliza o TMP36.
Para a seguinte práctica utiliza o que teñas dispoñible tendo en conta os rangos de medición.
Debemos conectar os pins dos extremos á alimentación e o pin central a unha entrada analóxica, tal e como aparece no seguinte esquema. A conexión é igual para os dous sensores LM35 e TMP36.
[tecnoloxia.org CC By-SA from Fritzing]
Nestes exemplos imos ver a temperatura redondeada coma un número enteiro, polo que usaremos o tipo de variable int (int mV, int T, etc.) Se quixéramos mostrar o valor decimal deberiamos utilizar o tipo de variable float (float T).
A lectura do sensor conectado a unha entrada analóxica vai desde 0 ata 1024. Isto correspóndese a uns valores de voltaxe de entre 0 e 5000 mV. Para calcular a voltaxe do sensor podemos utilizar a función map:
Outra opción é utilizar a fórmula:  mV= valor*5000/1023
Cada 10 mV corresponde a 1ºC de temperatura, polo que para calcular a temperatura en graos centígrados facemos a conversión: temperatura (ºC) = mV/10
/* sensor de temperatura LM35 */ // Variables int sensorPin= A0; // O sensor está conectado no pin analóxico A0 int valor; // Lectura realizada na entrada A0 int mV; // milivoltios lidos no sensor int T; // Temperatura en ºC (nº enteiro). // Configuración void setup(){ Serial.begin(9600); // Iniciamos a comunicación serie while(!Serial); // Agarda ata que conecte } // Programa void loop(){ valor = analogRead(sensorPin); // asignamos a lectura á variable "valor" (entre 0 e 1024) mV = map(valor,0,1023,0,5000); // Calculamos a voltaxe T = mV / 10; // Calculamos a temperatura en ºC Serial.print(mV); // Imprimimos na consola Serial.print(" mV"); Serial.print(" -- "); Serial.print(T); Serial.println(" C"); delay(1000); }
O TMP36 permítenos medir co Arduíno temperaturas negativas, xa que cando nos dá un valor de OV a temperatura é de -50ºC.
Para calcular a temperatura facemos o mesmo que no caso do sensor LM35, pero restando ao final 50ºC:
T= (valor/1023)*500 – 50
/* sensor de temperatura TMP36 */ int sensorPin= A0; // O sensor está conectado no pin analóxico A0 int valor; // Lectura realizada na entrada A0 int mV; // milivoltios lidos no sensor int T; // Temperatura en ºC, en decimal. void setup(){ Serial.begin(9600); // Iniciamos a comunicación serie while(!Serial); // Agarda ata que conecte } void loop(){ valor = analogRead(sensorPin); // asignamos a lectura á variable "valor" (entre 0 e 1024) mV = map(valor,0,1023,0,5000); // Calculamos a voltaxe T = (mV/10) -50; // Calculamos a temperatura en ºC Serial.print(mV); // Imprimimos na consola Serial.print(" mV"); Serial.print(" -- "); Serial.print(T); Serial.println(" C"); delay(1000); }
Cada vez que a temperatura supere un determinado valor (por exemplo 25ºC) debe acenderse un LED. Por debaixo dese valor o LED apagarase. Utilizarei un sensor LM35. Se fas esta práctica cun TMP36 lémbrate de modificar a fórmula.
/* LED activado por sensor de temperatura LM35 */ int sensorPin= A0; // O sensor está conectado no pin analóxico A0 int led=13; // LED conectado no pin 13 int valor; // Lectura realizada na entrada A0 int mV; // milivoltios lidos no sensor int T; // Temperatura en ºC, en decimal. int umbral=24; // Temperatura á que queremos acender o LED void setup(){ Serial.begin(9600); // Iniciamos a comunicación serie while(!Serial); // Agarda ata que conecte pinMode(led,OUTPUT); } void loop(){ valor = analogRead(sensorPin); // asignamos a lectura á variable "valor" (entre 0 e 1024) int mV = map(valor,0,1023,0,5000); // Calculamos a voltaxe T = mV / 10; // Calculamos a temperatura en ºC Serial.print(T); // Imprimimos na consola Serial.println(" C"); if(T>umbral){ // Se a temperatura supera o umbral acende o LED digitalWrite(led, HIGH); } else{ digitalWrite(led, LOW); } delay(1000); }
Valores decimais: Nos programas anteriores móstranse a voltaxe e a temperatura cuns valores enteiros. Modifícaos para que se mostre o valor decimal.
Convertedor de unidades. Fai que na consola serie se mostre unha táboa coa temperatura en ºC, ºK, e ºF.
Ventilador: Cada vez que a temperatura supere un determinado valor (Por exemplo 25ºC) debe acenderse un ventilador. Podes utilizar un pequeno ventilador dun ordenador vello ou un motor de corrente continua conectado como se ve nesta sección.
Termómetro de leds. Conecta 6 LEDs coas súas resistencias (2 verde, 2 amarelos e 2 vermellos) e fai que a medida que aumente a temperatura se vaian acendendo máis leds, desde os verdes ata os vermellos. Engade un zumbador que soe se a temperatura alcanza un máximo determinado.
Termómetro na LCD: Utiliza unha pantalla LCD para mostrar cada certo tempo a temperatura medida polo sensor. fai que se mostre unha media das medidas realizadas no intervalo.
Termostato: Mediante un potenciómetro deberá axustarse a temperatura límite que desexamos, e que se mostrará na pantalla (a consola ou unha LCD). Por debaixo desa temperatura deberá conectarse unha resistencia eléctrica (separa o circuíto de control do de potencia mediante un relé). Ao chegar á temperatura de referencia deberá desconectarse.
Deixa un comentario Cancelar a resposta
Nome Correo electrónico Sitio web
Gardar o meu nome, correo electrónico e web neste navegador para a próxima vez que faga un comentario.
Descrición de Arduíno UNO
O IDE de Arduíno
Entradas e saídas dixitais
Condicional if … else
Sinais PWM e lectura serial
Array de LEDs e funcións
A posición dun servo
Servos de xiro continuo
Motor de corrente continua
Motores paso a paso
Sensor de Luz LDR
Sensor de temperatura LM35 e TMP36
Sensor de temperatura e humidade DHT11
Sensor de temperatura DS18B20
Sensor de movemento PIR
Sensor de cor TCS3200
Sensor de cor TCS34725 RGB
Sensor de auga no solo
Medindo o tempo 1
Medindo o tempo 2: RTC
Bluetooth mestre + escravo
O tanque de auga
Reloxo de area dixital
A máquina máis inútil
Clasificador M&M’s por cor
Alarma para a cortadora láser
© 2022 Arduino • Creado con GeneratePress
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.