domingo, 4 de fevereiro de 2018

Como usar sensor DS18B20


Em muitos projetos necessitamos de sensores com um minimo de sensibilidade e precisão, o DS18B20 com certeza supri várias necessidades, além da sensibilidade podemos fazer projetos com vários sensores em uma unica porta, isso veremos em uma matéria posterior.


Veremos aqui algumas características desse sensor e um teste feito com ele, no final caso tenha alguma dúvida é só colocar nos comentários.


Algumas Características desse sensor:


  • Interface exclusiva 1-Wire® (1 conector) necessita de apenas 1 pino para comunicação
  • Cada sensor tem um número de série de 64 bits armazenados em memória ROM
  • Não requer peças externas
  • Pode ser alimentado pela linha de dados. Uma faixa de alimentação de 3,0 a 5,5V
  • Mede temperaturas de -55 a + 125 ° C (-67 ° F a + 257 ° F)
  • precisão de ± 0.5 ° C na faixa de -10 a + 85 ° C
  • resolução selecionável pelo Usuário de 9 a 12 bits
  • Converte a temperatura para uma palavra digital de 12 bits em no máximo 750ms
  • Não há dados para definir por usuário.
  • comando de busca de alarmes identifica e localiza os sensores que marcam temperaturas para os limites programados (condição de alarme de temperatura)
  • Aplicações diretas termostáticas, sistemas industriais, produtos de consumo, termômetros ou qualquer sistema com sensibilidade térmica




No video abaixo é possível ver o sensor em funcionamento.





Para o uso desse sensor se faz necessário algumas bibliotecas, utilizando a IDE Arduíno basta seguir os passos abaixo.




Clicar em sketch>incluir biblioteca>gerenciar bibliotecas




No campo de busca digite o nome do sensor, nesse caso DS18B30, irá aparecer duas bibliotecas, instale as duas.





Escolha a versão atual e click em instalar.



Código


/ * Modificado por Projeto Básico
    www.rpsilva100.blogspot.com
    www.youtube.com/c/projetobasicos
   fevereiro de 2018
   Com base no exemplo em: http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html

* /

/ * ----- (Importar bibliotecas necessárias) ----- * /
// Obter biblioteca de 1 fio aqui: http://www.pjrc.com/teensy/td_libs_OneWire.html
#include <OneWire.h>

// Obter a DallasTemperature Library aqui: http://milesburton.com/Main_Page?title=Dallas_Temperature_Control_Library
#include <DallasTemperature.h>

/ * ----- (Declare Constants and Pin Numbers) ----- * /
#define ONE_WIRE_BUS_PIN 2

/ * ----- (Declare objects) ----- * /
// Configurar uma instância oneWire para se comunicar com qualquer dispositivo OneWire
OneWire oneWire (ONE_WIRE_BUS_PIN);

// Passe nossa referência oneWire para Dallas Temperature.
Sensores DallasTemperature (& oneWire);

/ * ----- (Declare Variables) ----- * /
// Atribua os endereços dos seus sensores de temperatura de 1 fio.
// Veja o tutorial sobre como obter esses endereços:
// http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html

DeviceAddress Probe01 = {0x28, 0xFF, 0x35, 0xD7, 0x82, 0x15, 0x02, 0x1B};


void setup () / ****** CONFIGURAÇÃO: FUNCIONA UMA VEZ ****** /
{
  Serial.begin (9600);
  Serial.println ();
  Serial.println ("www.youtube.com/c/projetobasicos");
  Serial.println ();
  // Inicialize a biblioteca de medição de temperatura
  sensores.begin ();

  // configura a resolução para 10 bits (pode ser de 9 a 12 bits ... menor é mais rápido)
  sensores.setResolução (Probe01, 10);

} // - (configuração final) ---

loop vazio () / ****** LOOP: FUNCIONA CONSTANTEMENTE ****** /
{
  atraso (1000);

  // Comando todos os dispositivos no ônibus para ler a temperatura
  sensores.requestTemperatures ();

  // Serial.print ("Probe 01 temperature is:");
  printTemperature (Probe01);


} // - (loop principal final) ---

/ * ----- (Declare User-written Functions) ----- * /
void printTemperature (DeviceAddress deviceAddress)
{

  float tempC = sensores.getTempC (deviceAddress);

  se (tempC == -127.00)
  {
    Serial.print ("Erro ao obter temperatura");
  }
  outro
  {
    Serial.print (tempC);

    Serial.println ("C:");
  }
}


Obrigado!