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.
Podłączenie
Arduino Nano
Arduino 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