Índice:

Obtenha o número de série de um DS18B20 com um Arduino: 5 etapas
Obtenha o número de série de um DS18B20 com um Arduino: 5 etapas

Vídeo: Obtenha o número de série de um DS18B20 com um Arduino: 5 etapas

Vídeo: Obtenha o número de série de um DS18B20 com um Arduino: 5 etapas
Vídeo: Arduino DS18B20 Temperature Sensor Tutorial 2024, Novembro
Anonim
Obtenha o número de série de um DS18B20 com um Arduino
Obtenha o número de série de um DS18B20 com um Arduino

Este é um guia rápido sobre como obter os números de série individuais de seus sensores de temperatura de 1 fio DS18B20.

Isso é útil para projetos que requerem vários sensores.

Coisas que você precisa:

  • Arduino 5v (UNO, Mega, Pro Mini etc) - Arduino UNO R3 - AliExpress - eBay
  • Sensor de temperatura DS18B20 - AliExpress - eBay
  • Resistor de 4,7 k - 1 / 4w THT - AliExpress - eBay
  • Breadboard - AliExpress - eBay
  • Jumper Wires - Macho para Macho - AliExpress - eBay
  • Um computador com Arduino IDE instalado

Etapa 1: adicionar a biblioteca necessária ao Arduino IDE

Adicione a biblioteca necessária ao Arduino IDE
Adicione a biblioteca necessária ao Arduino IDE
  1. Abra o IDE do Arduino (estou usando 1.8.1)
  2. Clique em "Sketch" -> "Incluir Biblioteca" -> "Gerenciar Bibliotecas …"
  3. Selecione a barra de pesquisa e digite "dallas"
  4. Clique em "DallasTemperature" e clique em "Instalar"

Alternativamente, você pode baixar a Biblioteca aqui:

Esta biblioteca inclui a biblioteca OnWire.

Etapa 2: Conecte o DS18B20

Conecte o DS18B20
Conecte o DS18B20
Conecte o DS18B20
Conecte o DS18B20

Usando uma placa de pão, conecte + 5V, GND e o pino digital 2 (o pino 2 já está definido no esboço de exemplo) do Arduino usando jumpers de placa de teste Macho para Macho.

Conecte o DS18B20 paralelo às tiras de terminais 3x na placa de ensaio.

  • Pino 1 (GND) -> GND (Terra 0V)
  • Pino 2 (DADOS) -> Pino Digital 2
  • Pino 3 (Vdd) -> + 5V

Para o modo de energia normal, conecte um resistor de 4,7 K de + 5 V ao fio do pino 2 digital na placa de ensaio.

O link a seguir é um ótimo recurso para o sensor de temperatura de 1 fio DS18B20.

www.tweaking4all.com/hardware/arduino/ardu…

Etapa 3: carregue o esboço de exemplo "único"

Carregue o esboço de exemplo
Carregue o esboço de exemplo
Carregue o esboço de exemplo
Carregue o esboço de exemplo

Uma vez conectado, você está pronto para carregar o IDE do Arduino do SketchOpen do Dallas Temperature "Single" (estou usando 1.8.1) Clique em "Arquivo" -> "Exemplos" -> "Dallas Temperature" -> "Single" que eu adicionei em atraso (5000); na linha 103 para me dar tempo de copiar o número de série Selecione o formulário apropriado da placa "Ferramentas" -> "Placa" Selecione a porta apropriada "Ferramentas" -> "Porta" Agora "Faça upload" do esboço "Esboço" -> "Upload" Clique em "Ferramentas" -> "Monitor Serial" certifique-se de que as taxas de baud correspondem às minhas é 9600. Se o seu esboço não carregou, verifique sua placa, porta, drivers USB, etc.

Etapa 4: Copie o número de série

Copie o número de série
Copie o número de série
Copie o número de série
Copie o número de série

No "Monitor serial", você verá que a quarta linha é "Endereço do dispositivo 0: xxxxxxxxxxxxxxxx"

Este é o número de série do DS18B20

Se for "0000000000000000", há um problema ao ler seu DS18B20.

Destaque-o com o mouse e pressione CTRL + C no teclado e cole-o no Bloco de Notas

Para meus outros projetos, meu código usa uma matriz desses números. Reformatei a string HEX para o seguinte formato.

DeviceAddress tempSensorSerial [9] = {

{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x70, 0x17, 0x04, 0xD3}, {0x28, 0xFF, 0x86, 0xA8, 0x70, 0x17, 0x04, 0xA6}, {0x28, 0xFF, 0x2B, 0x65, 0x71, 0x17, 0x04, 0x76}, {0x28, 0xFF, 0x66, 0x62, 0x71, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED}, {0x28, 0xFF, 0x99, 0x42, 0x71, 0x17, 0x04, 0x4C}};

Etapa 5: Concluída

Finalizado
Finalizado

Agora você pode identificar cada sensor de temperatura individual DS18B20 de 1 fio em seu código e usar uma função como esta:

float getTemperature (byte j) {

sensores.requestTemperaturesByAddress (tempSensorSerial [j]);

float tempC = sensores.getTempC (tempSensorSerial [j]);

return tempC;

}

Recomendado: