Como usar o sensor de temperatura MCP9700 com Arduino
Olá pessoal, tudo bem? Neste tutorial você aprenderá como utilizar o sensor analógico de temperatura MCP9700. Ele é uma alternativa de baixo custo quando comparado ao seu equivalente LM35, veja a tabela de comparação abaixo:
MCP9700 | LM35 | |
Tensão min (V): | 2.3 V | 4V |
Tensão max (V): | 5.5 V | 30V |
Corrente | 12 uA | 60 uA |
Temp min (°C): | -40 °C | -60 °C |
Temp max (°C): | +125 °C | +150 °C |
Precisão: | +-1 °C | +-0.4 °C |
Veja a pinagem deste componente:
Montagem na Protoboard:
Caso você tenha problemas com oscilações nas leituras, adicione um capacitor cerâmico de 100nf nos terminais + e – do sensor a fim de servir como filtro.
void setup() { Serial.begin(9600); } void loop () { float temp = (analogRead(0)*5/1024.0)-0.5; temp = temp / 0.01; Serial.print(temp); Serial.println(" C"); delay(1000); }//fim do loop
E para construir um termômetro, basta pegarmos estes dados de temperatura e “jogar” em um display de LCD.
Lembrando que o nosso display é I2C, ou seja, ele tem uma placa soldada aos seus pinos para fazer a conversão de paralelo para I2C facilitando muito a nossa montagem.
Deve-se ficar atento ao “endereço” da placa, o endereço da nossa é “0x27”. Caso a sua tenha um endereço diferente, basta fazer a alteração no código antes do upload.
Se preferir, baixe o nosso >> PACK << com a biblioteca para o display, os esquemas de montagem, os datasheets e os códigos prontos! Com certeza lhe ajudará muito.
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // Seta o endereço do diplay para "0x27" , display de LCD 16x2 void setup() { Serial.begin(9600); // Inicializa a comunicação serial lcd.begin(); // Inicializa o display lcd.backlight(); // Ativa a luz do LCD lcd.print("TEMPERATURA"); // Escreve na primeira linha do LCD } void loop() { float temp = (analogRead(0)*5.0/1024.0)-0.5; // Lê os dados na porta analogica "ZERO", aplica a formula e guarda na variavel "temp" temp = temp / 0.01; // Aplica o ajuste na formula e guarda na variavel "temp" lcd.setCursor(4,1); // Posiciona o cursor do display lcd.print(temp); // Escreve o valor da temperatura no display lcd.print("C"); Serial.print(temp); // Escreve o valor da temperatura no serial monitor Serial.println("C"); delay(1000); // Aguarda 1 segundo para refazer a leitura } //fim do loop
Até a próxima pessoal!