Ви не увійшли.
Доброго всем времени. Есть скетч, который выводит на экранчик температуру в реальном времени. Нужна помощь в редактировании, что бы температура выводилась с 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);
}Неактивний
Датчики можна почепити на одну шину, тоді: 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);Неактивний
Спасибо. Получилось, туплю на очевидные вещи.
![]()
#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);
}Неактивний
Доброго часу суток . Халепка наступна: працювала в мене в машині схемка... міряла температуру зовнішню і антифризу + показувала рівень газу в балоні. Еолись перепаював датчики рівня самостійно . Вирішив не паритись переробити під стандартний заволський датчик проблем ніяких з тим не виникло... Проблемка виникла в тому , шо, просто помінявши значення від ацп не зміг звязатись зі старою платою (Arduino nano) купив нову ... ацп працює все гаразд а от дачиків температури ну ніяк не хоче бачити... Чи там їх якось прписати чи ініціалізувати потрібно я не памятаю . Нагадайте або поправте будь ласка
Доброго часу суток . Халепка наступна: працювала в мене в машині схемка... міряла температуру зовнішню і антифризу + показувала рівень газу в балоні. Еолись перепаював датчики рівня самостійно . Вирішив не паритись переробити під стандартний заволський датчик проблем ніяких з тим не виникло... Проблемка виникла в тому , шо, просто помінявши значення від ацп не зміг звязатись зі старою платою (Arduino nano) купив нову ... ацп працює все гаразд а от дачиків температури ну ніяк не хоче бачити... Чи там їх якось прписати чи ініціалізувати потрібно я не памятаю . Нагадайте або поправте будь ласка
Ви жжотє.
У вас була якась схема з датчиками. Ви там щось перепаяли і тепер вона працює не так як хочеться.
Навіть не знаю, чим можна допомогти ..
Скоріш за все якісь не такі датчики, але це не точно.
Скоріше за все датчики - китайські клони, і вони дійсно можуть працювати трохи не так справжні.
Датчики ніяк ініціалізувати не потрібно. А ви все точно скопіювали зі старої: і схему, і прошивку, і EEPROM? (раптом ідентифікатори датчиків в EEPROM зберігались)
Неактивний