Термометр DS18B20 (1-Wire)

Данные по одному проводу (D3) и обязательный резистор 4,7 кОм к +5 В — без него шина молчит. Температуру датчика крутят ползунком в инспекторе.

Программа

// Термометр DS18B20 на шине 1-Wire.
//
// Данные идут по ОДНОМУ проводу, и на нём обязателен резистор 4,7 кОм к +5 В:
// линия открытого стока, сама в единицу не поднимется. Забыли резистор —
// getDeviceCount() вернёт 0, и это будет выглядеть как сломанный датчик.
//
// Температуру датчика на схеме крутят ползунком в инспекторе.
#include <OneWire.h>
#include <DallasTemperature.h>

OneWire oneWire(3);                    // вывод DQ
DallasTemperature sensors(&oneWire);

void setup() {
  Serial.begin(9600);
  sensors.begin();
}

void loop() {
  sensors.requestTemperatures();       // просим ВСЕ датчики на шине измерить
  int n = sensors.getDeviceCount();

  Serial.print("датчиков на шине: ");
  Serial.print(n);
  Serial.print("   t = ");
  Serial.print(sensors.getTempCByIndex(0));   // −127 значит «не отвечает»
  Serial.println(" C");
  delay(1000);
}

Схема примера появится, когда загрузится страница: её собирает и считает движок цепей.

← Ко всем примерам