Medidas de temperatura¶
Las vamos a ver tanto con el sensor interno de la micro:bit como con un termistor.
MicroPython¶
El programa que muestra el valor de temperatura medida por el sensor interno de la micro:bit es:
from microbit import *
from I2C_LCD1602 import *
# Creamos una instancia
lcd = I2C_LCD1602(0x27)
lcd.on()
lcd.backlight(1) #1=retroiliminacion ON, 0=retroiluminacion OFF
lcd.clear()
while True:
Temperatura = temperature()
display.scroll(Temperatura)
lcd.puts("Temperatura: ",0,0)
lcd.puts(str(Temperatura),5,1)
lcd.puts("*C ",8,1)
sleep(2000)
El programa lo podemos descargar de:
MakeCode¶
El programa es muy sencillo, tan solo tenemos que poner el bloque en un mostrar número. Lo complicaremos un poco mostrando la temperatura también en la LCD I2C1602.
A16-Medida de temperatura con sensor interno
El programa lo podemos descargar de:
MicroBlocks¶
SEl programa que muestra la temperatura medida por el sensor interno de la micro:bit en la LCD y la pantalla es:
A16-Medida de temperatura con sensor interno
El programa lo podemos descargar de:
Circuito¶
Tenemos que montar y conectar correctamente el siguiente circuito:
Circuito con termistor
A continuación se muestran los programas para medir la temperatura desde un termistor. Estos programas son los mismos que anteriormente pero se ha añadido esta nueva lectura, así además podemos comparar.
MicroPython¶
El programa que muestra el valor de temperatura medida por el sensor interno de la micro:bit y por el termistor es:
from microbit import *
from I2C_LCD1602 import *
import math #para los cálculos
lcd = I2C_LCD1602(0x27)
lcd.on()
lcd.backlight(1) #1=retroiliminacion ON, 0=retroiluminacion OFF
lcd.clear()
while True:
Temp_int = temperature()
display.scroll(Temp_int)
sleep(1000)
lectura_ADC = pin0.read_analog()
# Pasa la lectura analogica a voltios
V = lectura_ADC*3.3/1023.0
# Por teoria divisor de tension
Rt = 10/((3.3/V)-1)
# Calculo de la temperatura
Temp_term = (1/(1/25 + math.log(Rt/10)/3997))
Temp_term_int = round(Temp_term)
lcd.puts("T_inter / T_term ",0,0)
display.scroll(round(Temp_term_int))
lcd.puts(str(Temp_int),0,1)
lcd.puts("*C ",3,1)
lcd.puts(str(Temp_term_int),10,1)
lcd.puts("*C ",13,1)
sleep(2000)
El programa lo podemos descargar de:
MakeCode¶
Gracias a la extensión de Freenove añadir al programa la lectura del termistor es muy simple, como vemos a continuación.
A16-Medida de temperatura con sensor interno y termistor
El programa lo podemos descargar de:
MicroBlocks¶
En MicroBlocks no hay una librería de matemáticas para añadir ni tampoco una librería para termistores y por lo tanto no es posible resolver esta activdad con este programa.
Si vamos a aprovechar para resolverla con el editor de MicroPython Mu.
from microbit import *
import math # para los cálculos
while True:
Temp_int = temperature()
display.scroll(Temp_int)
sleep(1000)
lectura_ADC = pin0.read_analog()
# Pasa la lectura analogica a voltios
V = lectura_ADC * 3.3 / 1023.0
# Por teoria divisor de tension
Rt = 10 / ((3.3 / V) - 1)
# Calculo de la temperatura
Temp_term = 1 / (1 / 25 + math.log(Rt / 10) / 3997)
Temp_term_int = round(Temp_term)
display.scroll(round(Temp_term_int))
sleep(2000)
El programa lo podemos descargar de: