Vamos conhecer o sensor de temperatura do Raspberry Pi Pico, um sensor interno que pode ser facilmente lido através de microPython. É um sensor que está dentro do chip RP2040.
Segundo o datasheet da Pi Pico, o sensor é um diodo polarizado utilizando uma referência de tensão interna. Esta tensão não é muito precisa, então até mesmo pequenos erros podem se transformar em grandes variações de temperaturas lidas.
A equação para obtenção da temperatura a partir da tensão está abaixo.
volt = (3.3/65535) * adc_value
temperature = 27 - (volt - 0.706)/0.001721
Primeiro calcula-se “volt” que é a tensão crua vinda do conversor analógico digital. Faz-se isso sobre os 3,3V de alimentação da placa. Depois calcula-se a temperatura levando-se em conta a tensão do sensor a 27 graus (0,706V) e seu slope (rampa) de -1,721mV/ºC. Obtem-se então uma temperatura em graus Celsius.
O código completo em microPython é visto abaixo. A referência que utilizei foi este blog. Ele depende da biblioteca “machine” para lidar com IO (nesta caso, analógico) e “time” para lidar com delay.
Utilizei o software Thonny IDE para programar o Raspberry Pi Pico, como já visto aqui.
import machine
import time
adcpin = 4
sensor = machine.ADC(adcpin)
def ReadTemperature():
adc_value = sensor.read_u16()
volt = (3.3/65535) * adc_value
temperature = 27 - (volt - 0.706)/0.001721
return round(temperature, 1)
while True:
temperature = ReadTemperature()
print(temperature)
time.sleep(5)
Veja que “adcpin = 4” quer dizer que o sensor está conectado internamente ao pino 4. A função “round(temperature, 1)” diz que a temperatura será mostrada com uma casa decimal. Abaixo uma imagem do console da Thonny IDE, mostrando as temperaturas lidas a cada 5 segundos.
Em um futuro próximo falaremos mais sobre a Raspberry Pi Pico, aguarde.
Deixe um comentário