Ви не увійшли.
Сторінки 1
Доброго дня.
Хочу зробити (довести до ума) для свого дому систему опалення від сонця. На даху стоять колектори, які віддають тепло в бак з водою. З бака підігріта вода подається в систему опалення. Коли бак непрогрітий, включається електричний котел. Колектори, бак, підлога, приміщення, гребінки теплої підлоги обладнані датчиками температури ds18b20. Ардуіно на основі отриманих температур керує насосами і котлом, значення температур , статуси насосів виводяться на два екрани lcd. Присутній годинник, для визначення години доби для використання тарифу електроенергії день-ніч, година також виводиться на lcd. Зібрано в металевому ящику. Все, нібито, працює, але періодично в роботі виникає збій. Деколи датчики хаотично перестають повертати температуру і показують короткочасно -127. Раніше я використовував uno, датчики були під'єднані по одній шині, опитувалися по адресах. Тепер я поставив mega, датчики опитуються кожний через свій пін, але роблема збою не пройшла. Ардуіно і плата реле живляться окремими блоками на 12в. Пробував заживлювати 220 через інверторний стабілізатор, потім через екофло - все одно періодично збоїть. Зауважив, що коли включений котел, то збоїти починає сильніше. В момент виключення котла майже всі датчики сходять з розуму, за довгий період часу годинник почав відставати годин на 15. З чим це може бути пов'язано? Чи може електрокотел створювати якесь електромагнітне поле, яке впливає на роботу ардуінки? Чи є зміст помістити її в металевий екран? Чи може розмістити ардуіно і блоки живлення в різних металевих корпусах або віднести збірку подалі від електрокотла? Чи може проблема в чомусь іншому ? Буду вдячний за пораду.
Неактивний
Я думаю справа не в арудіні, а в проводах від неї до датчиків. Наскільки вони довгі?
Дровода від різних датчиків відповідної довжини до їх розміщення. До датчиків на гребінці приблизно 1 м. До датчиків на колекторах близько 15 м. Резистори 4,7 кОм. Пробував різні провода - сигнальні, вита пара, екрановані. Результат той самий.
Остання редакція Orest1 (2024-01-20 19:17:21)
Неактивний
А -127 показують всі? Наскільки я зрозумів, зараз кожен датчик сидить на окремому піні? Я б припустив, що проблема в довжині, якщо в помилку випадають тількі ті, які на колекторах (15м). Але якщо всі і одночасно, то може і не в проводах проблема. Як часто ви їх опитуєте?
кожен датчик має окремий пін, підтягнутий своїм резистором.
Опитується кожні 10 секунд. при частішому опитуванні хаос зростає.
Але поки не працює електрокотел - все добре, датчики працюють.
Остання редакція Orest1 (2024-01-20 20:03:00)
Неактивний
Ардуіно на основі отриманих температур керує насосами і котлом,
Я так розумію це відбувається за допомогою тих двох синіх проводів які йдуть з реле внизу ардуїни? То ви б їх ще проклали одразу зверху AVR-ки ...
Можете в двох словах роз'яснити що відбудеться?
Ймовірно, на шину наводяться електромагнітні перешкоди, і датчики не завжди розпізнають команду читання. Зменшення номіналу має збільшити стійкість до перешкод і зменшити вплив ємності самої лінії передачі.
Подивитись би з боку датчиків осцилографом, в якому вигляді до них доходять запити.
Пробував різні провода - сигнальні, вита пара, екрановані
Щоб екран працював, його потрібно правильно "заземлити". Але тоді ємність лінії ще збільшиться. Вита пара добре підходить для передачі диференційних сигналів, а 1-Wire асиметричний, не диференційний.
Датчики живляться паразитно з шини чи по окремій лінії? Якщо по окремій, з боку датчиків стоять блокуючі конденсатори?
Активний
Ардуіно і плата реле живляться окремими блоками на 12в.
Навіщо? Одного там вистачить із запасом.
Якщо датчики з окремим живленням, сподіваюсь, воно від того ж блока, що і ардуіно?
Активний
г0cть пише:Ардуіно і плата реле живляться окремими блоками на 12в.
Навіщо?
Це ви у Ореста запитайте
Це ви у Ореста запитайте
Вибачте, помилився при цитуванні.
Блоки 12-вольтові, то датчики мабуть же живляться зі стабілізатора ардуіно. Але по фотографії не зрозуміло. З лівого блока видно провода на реле і далі наче теж на блок комутації датчиків.
Доречі, програма на ардуіно не перевіряє CRC відповідей? -127 - це всі одиниці, тобто датчик просто не відповідає, лінія в одиниці. CRC не має бути коректним.
Активний
Дякую Всім за увагу.
Сьогодні переніс ящик подалі від котла. Нічо не дало.
"Навіщо? Одного там вистачить із запасом." - боровся з проблемою. В ютюбі хтось про говорив, що треба два блоки - то я так зробив. Але температури пропадають як з одним, так і з двома.
Датчики живляться тис самим блоком, що і ардуіно.
"Датчики живляться паразитно з шини чи по окремій лінії? Якщо по окремій, з боку датчиків стоять блокуючі конденсатори? " - Датчики живляться по окремій лінії. А можете написати про конденсатори? Який би то мав бути номінал?
"Я так розумію це відбувається за допомогою тих двох синіх проводів які йдуть з реле внизу ардуїни? То ви б їх ще проклали одразу зверху AVR-ки ..." - я не думаю, що то через то. Навіть якщо силова частина ардуіно повністю обезточена, і котел керується своїм внутрішнім температурним датчиком, все одно температури пропадають.
Осцилографа не маю, не вмію.
Хочеться вірити, що є просте рішення.
Неактивний
Питання по живленню, ніби, відпало. Відключив від блоків живдення 220, відключив заземлення будинку, заживив ардуіно від крони - все одно при роботі електрокотла ( коли котел відключений, то все працює відмінно ) починається хаос з температурами від датчиків. Схиляюся , що то якісь електромагнітні поля , які створює котел, , так впливають на роботу контролера. Як з тим боротися?
Остання редакція Orest1 (2024-01-21 22:40:16)
Неактивний
Датчики живляться по окремій лінії.
З вихода +5V плати ардуіно, так?
А можете написати про конденсатори? Який би то мав бути номінал?
0.1 мкФ має бути достатньо. Керамічний, між Vdd і GND біля самого датчика.
Осцилографа не маю, не вмію.
Хочеться вірити, що є просте рішення.
Без аналізу конкретної ситуації можемо тільки вгадувати типові проблеми і пропонувати типові рішення.
Активний
Схиляюся , що то якісь електромагнітні поля , які створює котел, , так впливають на роботу контролера.
Контролер спонтанно зависає? Перезавантажується? Якщо ні, то з контроллером все нормально. Завади впливають на спілкування між контроллером і датчиками.
Для експерименту підʼєднайте один датчик безпосередньо до плати контроллера якомога коротшими проводами.
Активний
Помилки на фізичному рівні будь-якого протоколу не вийде знизити до нуля, можна лише зменшити до прийнятного рівня, а боротися з ними потрібно на більш високому рівні протоколу шляхом виявлення і повторної відправки. В 1-wire є контрольна сума, подивіться, що повертає бібліотека у випадку невірної КС, якщо це і є -128, то повторюйте запит.
Щоб хоч якось вберегти мікроконтролер від наведених струмів у шині, поставте супресори на 5в ось таким чином, як на виході схеми:
Неактивний
Сторінки 1