Ви не увійшли.
Спасибо. Получилось, туплю на очевидные вещи.
#include <OneWire.h>
#include <DallasTemperature.h>
//#define ONE_WIRE_BUS 10 // номер пина к которому подключен DS18B20
#define ONE_WIRE_BUS1 10
#define ONE_WIRE_BUS2 11
OneWire oneWire1(ONE_WIRE_BUS1);
OneWire oneWire2(ONE_WIRE_BUS2);
DallasTemperature sensors1(&oneWire1);
DallasTemperature sensors2(&oneWire2);
//OneWire oneWire(ONE_WIRE_BUS);
//DallasTemperature sensors(&oneWire);
#include <OLED_I2C.h>
OLED myOLED(8, 9, 8); // 8pin - SDA , 9pin - SCL
extern uint8_t BigNumbers[];
//extern uint8_t MegaNumbers[]; // Подключение больших шрифтов
void setup()
{
sensors1.begin();
sensors2.begin();
// sensors.begin();
myOLED.begin();
}
void loop()
{
sensors1.requestTemperatures();
sensors2.requestTemperatures();
myOLED.clrScr(); // очищаем экран
myOLED.setFont(BigNumbers);
myOLED.print(String(sensors1.getTempCByIndex(0) , 1), LEFT, 22); // Отображение температуры
myOLED.print(String(sensors2.getTempCByIndex(0) , 1), RIGHT, 22); // Отображение температуры
myOLED.update();
delay(100);
}
Датчики можна почепити на одну шину, тоді: sensors.getTempCByIndex(0); sensors.getTempCByIndex(1);
А якщо потрібно дві окремі шини, тоді так:
#define ONE_WIRE_BUS1 10
#define ONE_WIRE_BUS2 11
OneWire oneWire1(ONE_WIRE_BUS1);
OneWire oneWire2(ONE_WIRE_BUS2);
DallasTemperature sensors1(&oneWire1);
DallasTemperature sensors2(&oneWire2);
...
sensors1.begin();
sensors2.begin();
...
sensors1.getTempCByIndex(0);
sensors2.getTempCByIndex(0);
Доброго всем времени. Есть скетч, который выводит на экранчик температуру в реальном времени. Нужна помощь в редактировании, что бы температура выводилась с 2х датчиков, подключённых на разные пины. Второй датчик на 11 пине.
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 10 // номер пина к которому подключен DS18B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
#include <OLED_I2C.h>
OLED myOLED(8, 9, 8); // 8pin - SDA , 9pin - SCL
extern uint8_t MegaNumbers[]; // Подключение больших шрифтов
void setup()
{
sensors.begin();
myOLED.begin();
}
void loop()
{
sensors.requestTemperatures();
myOLED.clrScr(); // очищаем экран
myOLED.setFont(MegaNumbers);
myOLED.print(String(sensors.getTempCByIndex(0) , 1), CENTER, 9); // Отображение температуры
myOLED.update();
delay(100);
}