Temp DS18B20 module (37 in 1)

Dallas1

Temp DS18B20 module

Opis.

DS18B20 to cyfrowy czujnik temperatury 1-Wire firmy Maxim IC. Podaje stopnie w stopniach Celsjusza z dokładnością od 9 do 12 bitów, od -55 do 125 (+/- 0,5). Każdy czujnik ma wytłoczony unikalny 64-bitowy numer seryjny - pozwala to na użycie ogromnej liczby czujników na jednej magistrali danych.Specyfikacja

 

Schemat modułu.

SchematDallas

Podłączenie

dallasspiny

Arduino Nano

dallasnano

 

Arduino Uno

 

Uno

Kod.

Pobranie adresu czujnika:

#include <OneWire.h>

// Numer pinu cyfrowego do którego podłaczyłęś czujniki
const byte ONEWIRE_PIN = 8;

OneWire onewire(ONEWIRE_PIN);

void setup()
{
  while(!Serial);
  Serial.begin(9600);
}

void loop()
{
  byte address[8];

  onewire.reset_search();
  while(onewire.search(address))
  {
    if (address[0] != 0x28)
      continue;

    if (OneWire::crc8(address, 7) != address[7])
    {
      Serial.println(F("Błędny adres, sprawdz polaczenia"));
      break;
    }

    for (byte i=0; i<8; i++)
    {
      Serial.print(F("0x"));
      Serial.print(address[i], HEX);

      if (i < 7)
        Serial.print(F(", "));
    }
    Serial.println();
  }

  while(1);
}

Odczyt temperatury:

#include <OneWire.h>
#include <DS18B20.h>

// Numer pinu do którego podłaczasz czujnik
#define ONEWIRE_PIN 8

// Adres czujnika
byte address[8] = {0x28, 0xB1, 0x6D, 0xA1, 0x3, 0x0, 0x0, 0x11};

OneWire onewire(ONEWIRE_PIN);
DS18B20 sensors(&onewire);

void setup() {
  while(!Serial);
  Serial.begin(9600);

  sensors.begin();
  sensors.request(address);
}

void loop() {
  if (sensors.available())
  {
    float temperature = sensors.readTemperature(address);

    Serial.print(temperature);
    Serial.println(F(" 'C"));
    sensors.request(address);
  }
}

Źródła

http://akademia.nettigo.pl/ds18b20/

https://forbot.pl/blog/kurs-arduino-ii-termometry-analogowe-lm35-i-cyfrowe-ds18b20-id18414

 

 

 

Zbudowano na Drupalu