0

Sensor de temperatura DS18B20 com Arduino

O sensor de temperatura DS18B20 é um sensor muito comum, económico e fácil de ligar à nossa placa de desenvolvimento favorita. Este sensor tem uma vantagem sobre outros sensores; vem encapsuladp num tubo de aço com borrachas de selagem que o tornam impermiável e ideal para aquários, piscinas ou para tomar temperaturas de líquidos em geral.

Neste tutorial, vamos ver como obter a temperatura ambiente em graus Celsius e Farenheit obtendo estes dados pelo monitor série. Os materiais que vamos precisar para realizar este tutorial são:

  • 1x Arduino (UNO, Nano, Mega,…)
  • 1x Sensor DS18B20
  • 1x Resistencia de 10K

Montagem e ligações

Como pode ver no esquema, ligamos o positivo do sensor (VCC) ao pino 5v do Arduino, no negativo do sensor (GND) a qualquer pino GND do Arduino e o cabo de dados ao pino digital 2 do Arduino, para acabar intercalamos uma resistência  de 10k entre o cabo de dados do sensor e a entrada de 5v (VCC). Para mais detalhes, aqui tem a imagem:

Sketch para Arduino

Para que este sketch funcione necessitamos de importar 2 livrarias, OneWire e DallasTemperature. Para isso descarregamo-las e extraimo-las em C:\Arquivos de programa\Arduino\livrarias. Quando as livrarias tiverem instaladas, já podemos abrir o IDE de Arduino e carregar o seguinte sketch, está comentado para que seja fácil de entender:

//Importamos as livrarias necessarias para a leitura do sensor
#include  <onewire.h>
#include <dallastemperature.h>

//Declaramos o pino onde se vai ligar o cabo DATA do sensor 
#define Pin 2 

//Declaramos o pino como bus para a comunicação OneWire 
OneWire ourWire(Pin); 

//Iniciamos 1 instancia da livraria DallasTemperature 
DallasTemperature sensors(&ourWire); 

//Esta função executa-se quando se inicia o Arduino 
void setup() {
//Iniciamos a comunicação serial
Serial.begin(9600); 
//Iniciamos o sensor
sensors.begin();
//Pequena pausa 
delay(1000);
}

//Esta função executa-se continuamente em laço
void loop() {
//Enviamos uma petição ao sensor para que nos devolva a temperatura
sensors.requestTemperatures(); 
//Lê-se e imprime a temperatura em graus Celsius no monitor serie
Serial.print(sensors.getTempCByIndex(0)); 
Serial.println(" graus Centigrados");
//Lê-se e imprime a temperatura em graus Farenheith no monitor serie
Serial.print(sensors.getTempFByIndex(0)); //Lê-se e imprime a temperatura en graus Fahrenheit
Serial.println(" graus Fahrenheit"); 
//Pequena pausa de 1 segundo antes da próxima leitura
delay(1000); 
}

Todos os produtos utilizados neste artigo podem ser encontrados na Loja de Eletrónica e Robótica – ElectroFun.

Gostaram deste artigo? Deixem o vosso comentário no formulário a baixo e partilhem com os vossos amigos.

Não se esqueçam de fazer like na nossa Página no Facebook.

Podem ainda colocar as vossas dúvidas no nosso Forum da Comunidade Arduino em Portugal ou no nosso Grupo no Facebook Arduino Portugal – Qual o teu projeto?

Comments

Comentários

Jaime Mota

Deixar uma resposta