DS18B20

Тема в разделе "Arduino & Shields", создана пользователем Perun61, 15 ноя 2012.

  1. ИгорьК

    ИгорьК Гуру

    Я не работаю с esp на Ардуиновской IDE.
     
  2. Silver

    Silver Нуб

    Есть какие-либо способы проверки исправности датчика?

    Вот фото его подключения. Может быть Вы увидите косяк, если он есть?
    5lzNv961VpU.jpg QKGSkbpPslU.jpg V0NLIxEEYrM.jpg
     
  3. ZAZ-965

    ZAZ-965 Гуру

    О, ставлю диагноз по фотографии!
    У герметичного 18B20 цветовое обозначение проводов, ведущих к датчику:
    КРАСНЫЙ - VCC
    ЖЕЛТЫЙ - DATA
    ЧЕРНЫЙ - GND

    У вас, по-моему, перепутаны питание с данными (переставить белый на D1,а красный на 3,3В). И земля от датчика двоится (надо меньше пить), точно вставлено в 28 ряд?
     
    Последнее редактирование: 19 июл 2016
  4. Silver

    Silver Нуб

    Черный точно вставлен в 28 ряд. Просто там изоляция расщеплена. Провода поменял местами. Итог тот же - No more addresses
     
  5. sys

    sys Злобный Буратино Модератор

    желтый провод это сигнал у вас или питание? и зачем резистором замыкаете сигнал и питание? я еще не очень силен во всяких таких хитростях, поэтому интересно
     
  6. Начну с того что покопался на форуме но не нашел конкретного решения проблемы. Не поймите меня неправильно но сообщения типа "поставить керамику 0.1" "повесить кондёр на 10mf 640v" и тд для меня сложно без внятной схемы. Я больше по программированию и изучать такие вещи не то что не могу, это сложно и хотелось бы спросить знающих людей что бы воспользоватся их знаниями.

    Имеем Arduino mega 260, 5 датчиков DS18B20(и кучу остального, хз может ли влиять)
    вот схема подключения(сильно не пинать рисовал в paint)
    [​IMG]
    Так вот всё было до недавнего времени норм. Ну тоесть если точнее то не так часто всё это запускалось. Изначально пока остальная приблуда была неготова то запускал в режиме дебага ненадолго и отключал датчики.

    Теперь же после некоторого времени(опрос раз в 5 секунд * 100 ~ 500сек) отваливается и пишет что -127 а так же говори что датчик не подключён (sensors.isConnected(temperatureSensor))

    пользуюсь библиотекой DallasTemperature

    Код не прилагаю так как он стандартен и я не думаю что ошибка там.

    Так вот "починить" датчики можно просто отрубив землю и подключив заново, тогда он(arduino) опять подключается и опять работает некоторое время. Такая починка раз в 10 мин меня не устраивает.
    Кстати пробовал перезагружать arduino но никакого эффекта нет.

    Сначала думал баг в библиотеке но вроде там всё норм, погугли и понял что это довольно распространнённая ошибка подключения. Только вот решение требует танцов с бубнами(для людей которые не соображают). Изначально у меня 5v и земля брались с arduino сейчас я привёл всё к схеме выше, думал что arduino не хватает mA. Но как понимаете это не помогло.

    Остальные жилы в витой паре использубтся для передачи на реле питания и сигнала(одно реле 5v) и подвод питания для светодиодов(тоже 5v) тоесть задействовано все 8 жил
    1. коричневый и коричневый с белым земля и 5v
    2. синий и белый с синим земля и 5v
    3. зелёный и белый с зелёным земля и 5v
    4. оранжевый и белый с оранжевым два сигнальных на реле и датчики температуры.
    Реле как раз таки включается когда температура будет ниже определённой отметки. Включатся скорее всего будет черз пару месяцев.

    Что мне посоветуете поставить и куда для исправления ситуации.

    Я так понимаю дело в наводке и создании шума. В распоряжении только мультиметр из приборов и более менее прямые руки с паяльником. ну и естественно уже в 10-й раз проверил все соединения, окиси и плохого контакта нет, прозванивал это дело в том числе и сигнальный провод.
     

    Вложения:

  7. DIYMan

    DIYMan Guest

    А где подтяжка линии данных 1-Wire к питанию?
     
  8. На схеме синяя линия это линия данных, красная это питание. И между ними я нарисовал и подписал резистор на 4.7кОм

    Я сделал не верно?
     
  9. Tomasina

    Tomasina Сушитель лампочек Модератор

    Почему 4,7 кОм? Надо 2,2-3,3 кОм, особенно для длинных линий.
    И топология должна быть линейной, а не звездой. Какая длина от клеммника до датчика?
    Сбои начинаются после срабатывания реле или раньше?
    Можно еще на первом клеммнике между черным и красным проводом прицепить конденсатор 47-100 мкФ х 16 В, соблюдая полярность.
     
  10. Securbond

    Securbond Гуру

    Подтверждаю. То же сталкивались с данной проблемой. Замена резистора всё решает.
     
  11. DIYMan

    DIYMan Guest

    Потому что это стартовая точка номинала, рекомендованная авторами протокола. Естественно, есть оговорка про подбор номинала для длинных линий, так что тут вы правы.
     
  12. DIYMan

    DIYMan Guest

    Верно, линия данных через резистор соединяется с питанием, но: если для коротких линий (в пределах пары метров) 4К7 представляется нормальным номиналом, то для длинных - возможно (подчеркну - возможно), номинал резистора придётся уменьшать. Факторов, от которых это зависит - множество, поэтому дать однозначную рекомендацию по номиналу резистора никто не в состоянии, думаю. Начинайте с номинала 4К7, и если будут сбои в показаниях с датчиков - потихоньку уменьшайте номинал.

    З.Ы. Переменный резистор рулит для этих целей ;)
     
  13. Securbond

    Securbond Гуру

    Думаю нужно просто измерить сопротивление линии. И уменьшить 4К7 на это сопротивление.
     
  14. ИгорьК

    ИгорьК Гуру

    Почему все решили что дело в железе а не в программе ?
    Я бы, в первую очередь, оставил бы только эти датчики, опрашивал бы их без библиотеки.
    Я очень давно сталкивался с тем, что далласовская библиотека странновата и работает не корректно. Но уже давно ей не пользуюсь и никогда не имел проблем с дс18в20. А у меня их много. Много.
     
    РусНекромант нравится это.
  15. Я не так хорош в C++ как хотелось бы. Бегло я просмотрел но врятли там простой баг, если он есть.Я обязательно попробую, но сначала таки попробую так:

    Как решу обязательно отпишусь, особенно если дело в библиотеке. Можно будет даже предложить исправление автору.

    Спасибо.
     
  16. Здравствуйте!

    В данный момент создаётся проект "умный дом", управление которого происходит по локальной сети, на основе Arduino UNO и Ethernet Sheeld W5100. Имеется скетч управления четырьмя реле, хотелось бы добавить термометр на основе датчика температуры DS18B20. К сожалению, на просторах интернета подобного скетча не нашёл! А в самостоятельном написании не силён!
    Ниже скетч с сервером и реле.

    Прошу помощи!Заранее спасибо!
     

    Вложения:

  17. AlexVS

    AlexVS Гик

    В последнее время все чаще появляются подобные темы:
    У меня есть это и то и мне нужна для этого соответствующая программа(прошивка).
    Но программировать я не умею и учиться не хочу и не буду.
    Напишите за меня, плиз!
    И конечно же за без денег, ибо я не только не умею программировать но и денег мне жалко.
    PS Термометров на ds18b20, в интернете, как грязи, в т.ч. и на этом форуме. Вам не только лень учится программировать, но и лень искать http://forum.amperka.ru/threads/ds18b20-повторим-пройденное.4013/
    Так же вам лень скачать библиотеку для этого датчика и посмотреть примеры, идущие вместе с библиотекой.
    PSPS Вы уж напрягитесь, найдите, почитайте, попробуйте внести необходимые изменения в имеющийся у вас код. А вот когда что-то не получиться, то подтягивайтесь сюда и задавайте вопросы, не забыв опубликовать то, что вы сами написали. Тогда глядишь и помогут.
     
    Последнее редактирование: 16 ноя 2016
    ИгорьК, ostrov и Tomasina нравится это.
  18. ostrov

    ostrov Гуру

    Вот тут помогут в драку с таким вопросом.
     
    ИгорьК нравится это.
  19. AndrOrt

    AndrOrt Нуб

    Добрый День!
    Пробовал кто-нибудь опрашивать датчики DS18B20 на Iskra JS по адресу, как в Arduino?
    Пример по документации Espruino
    connect(new OneWire(pin), ID) - use the DS18B20 device with the given ID
    var sensor3 = require("DS18B20").connect(ow, -8358680895374756824);
    Пробовал записывать ID и в HEX, и в DEC.
    Iskra JS Выдает ошибку: "No DS18B20 found".
     
    Последнее редактирование: 25 дек 2016
  20. Morgan

    Morgan Гик