Термометр 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);
}
Схема примера появится, когда загрузится страница: её собирает и считает движок цепей.