Descrición

[termistores tecnoloxia.org CC By-SA]
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 sobre o valor da resistencia do termistor 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.
Se desexamos ter precisión, unha opción interesante é utilizar o sensor de temperatura LM35. Trátase dun circuíto integrado que proporciona unha saída de voltaxe proporcional á temperatura (10mV por cada grao centígrado) cunha precisión de 0,5ºC a temperatura ambiente. É o que imos utilizar nesta práctica.
Montaxe
Debemos conectar os pins dos extremos á alimentación e o pin central a unha entrada analóxica, tal e como aparece no seguinte esquema.
![]() [tecnoloxia.org CC By-SA from Fritzing] |
![]() [tecnoloxia.org CC By-SA] |
Programa
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 fórmula:
milivoltios= valor*5000/1023
Outra opción é utilizar a función map: milivoltios = map(valor,0,1023,0,5000);
Cada 10 mV correspóndese a 1ºC de temperatura, polo que para calcular a temperatura en graos centígrados facemos a conversión: temperatura (ºC) = milivoltios/10
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
/* sensor de temperatura LM35 */ int sensorPin= A0; // O sensor está conectado no pin analóxico A0 int valor; // Lectura realizada na entrada A0 float mV; // milivoltios. Variable tipo float porque é decimal. float T; // Temperatura en ºC, tamén 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 = (valor / 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); } |
Propostas
- Ventilador. Cada vez que a temperatura supere un determinado valor debe acenderse un ventilador. Podes utilizar un pequeno ventilador dun ordenador vello.
- Convertedor de unidades. Fai que na consola serie se mostre unha táboa coa temperatura en ºC, ºK, e ºF.
- 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.

![[tecnoloxia.org CC By-SA from Fritzing]](../wp-content/uploads/sites/5/2016/10/LM35_fritzing.png)
