18b20 максимальная длина провода

Обновляет температуру каждую секунду. В итоге в определнный момент ардуино перестала видеть датчик. Потом опять заработал. Теперь снова не видит.

Подозреваю, что проблема в длинном кабеле.

Можно как-то вылечить, не уменьшая длину кабеля?

гарантированного решения думаю для вашей проблемы нет, но есть рекомендации, может помогут:

— прежде всего убедитесь, что при подключении короткими проводами проблема не возникает

— используйте экранированый провод где желательно, чтобы все три жилы были в экране (т.е. экран подключить к земле, но ток по нему не пускать — питание на датчик подавать по другому проводу внутри экрана

— попробуйте снизить споростивление до 1-3ком, надеюсь резистор стоит на той стороне провода которая ближе к ардуине, а не к датчику

— попробуйте поставить электролит на 1-10мкф в паралель с керамическим конденсатором на 100нф около самого датчика

Раз в секунду — слишком часто для этого датчика. Сделайте раз в 5 секунд.

Раз в секунду — слишком часто для этого датчика. Сделайте раз в 5 секунд.

если использована грамотная библиотека то там уже встроено ожидание датчика

максимальнео ожидание 0.75сек соотвествует максимальной точности 12 бит. Время можно сильно сократить если снизить разрещение датчика. В даташите вся эта информация есть, так что если важна частота, а не точность — реально и чаще чем раз в секунду

гарантированного решения думаю для вашей проблемы нет, но есть рекомендации, может помогут:

— прежде всего убедитесь, что при подключении короткими проводами проблема не возникает

— используйте экранированый провод где желательно, чтобы все три жилы были в экране (т.е. экран подключить к земле, но ток по нему не пускать — питание на датчик подавать по другому проводу внутри экрана

— попробуйте снизить споростивление до 1-3ком, надеюсь резистор стоит на той стороне провода которая ближе к ардуине, а не к датчику

— попробуйте поставить электролит на 1-10мкф в паралель с керамическим конденсатором на 100нф около самого датчика

А эти рекомендации в полном объеме и для DHT22 можно использовать?

И насколько принципиально место установки подтягивающего резистора?

РЕШЕНО Esp8266 ds18b20 -127

Тема в разделе «ESP8266, ESP32», создана пользователем Elman, 14 янв 2020 .

SimpleTimer timer ;
OneWire oneWire ( ONE_WIRE_BUS ) ;
DallasTemperature DS18B20 ( & oneWire ) ;
ESP8266WebServer server ( 80 ) ;

#define notify_send 2 // Кол-во отправляемых уведомлений
#define notify_interval 3000 // Интервал отправляемых уведомлений
// Настройки

float temp [ 5 ] ;
bool notify_send_flag [ 5 ] ;
byte notify_send_num [ 5 ] ;
unsigned long notify_send_time [ 5 ] ;
byte sensor_num ;

void setup ( ) ) ;
server. on ( «/update» , HTTP_POST, [ ] ( ) , [ ] ( )
> else if ( upload. status == UPLOAD_FILE_WRITE )
> else if ( upload. status == UPLOAD_FILE_END ) else
Serial. setDebugOutput ( false ) ;
>
yield ( ) ;
> ) ;
server. begin ( ) ;
MDNS. addService ( «http» , «tcp» , 80 ) ;

Читайте также: Разъем для проводов в розетке

Serial. printf ( «Ready! Open http://%s.local in your browser \n » , host ) ;
> else
>

void loop ( ) temp_limit [ sensor_num ] [ 1 ] ) notify_interval )
>
else

>
>
else if ( temp [ sensor_num ] temp_limit [ sensor_num ] [ 0 ] && temp [ sensor_num ] > 0 ) notify_interval )
>
else

>
>
else

Правильная разводка термодатчиков DS18B20

Запись дневника создана пользователем Андрей-АА, 14.01.12
Просмотров: 48.922, Комментариев: 23

Статья предназначена для специалистов и продвинутых радиолюбителей. Она касается всех систем с датчиками DS18B20, а также — всех других систем с контактами и микроамперными токами, протекающими через них.
Хочу рассказать свои мысли по вопросу соединения и разводки термодатчиков.
В техподдержке Кситала мне сообщили следующее:
Все термодатчики должны быть соединены почти строго «в линию», без длинных ответвлений «в сторону» (максимум 20см). Это необходимо якобы потому, что в противном случает получается несогласованная по волновому сопротивлению линия и якобы за счет отражений система показывает в результате либо +85оС, либо прочерк вместо температуры. И добавляют, что оба этих результата могут быть также по причине плохого контакта в разъемах.
На мой вопрос » — какова тактовая частота на шине?» получил ответ «- низкая».
Я не очень понимаю такую логику «отражений» потому, что на длинах в единицы-десятки метров и низкой тактовой частоте волновое сопротивление и его согласование не имеет никакого значения. А также — из-за «странного» совпадения с причиной «плохой контакт».
Итак, я считаю, что причина периодического искажения результатов замера температуры — именно плохой контакт (исключение — Примечание 2):
Дело в том, что при микроамперных токах (а входной ток датчика DS18B20 наверняка мизерный), контакты через которые течет этот ток могут быть слегка окислены, или загрязнены и микроток банально не пробивает этот зазор, в отличие от миллиамперных и более высоких токов. Эффект этот специалистам известен. Т.е., если сигнал на шине проходит через контакты, то ему нужен «заметный» ток, причем, что очень важно — этот повышенный ток должен проходить через абсолютно все сигнальные контакты шины (через все последовательно соединенные разъемы).
Т.е., для того, чтобы контакт стал лучше нужен ток побольше, чем микроамперы — хотя бы (очень приблизительно) от 1 миллиампера. Возможно, что не случайно на схемах с использованием DS18B20 с линии данных на питание всегда нарисован резистор 4,7кОм, что как раз обеспечит ток около 1мА.
Как же правильно организовать (улучшить) бессбойный обмен информацией с такими датчиками?
Есть 4 варианта:
1. Рабоче-крестьянский (для пользователей): при проблемах промывать/чистить контакты, или заменять разъемы (тройники там обычные, их телефонные аналоги продаются во «всех» магазинах).
Остальные варианты — «профессиональные», для разработчиков Кситала (впрочем хороший радио-монтажник сможет это переделать и самостоятельно):

2. Он, правда, не идеально соответствует логике использования датчиков с разными длинами проводов: надо подводить к каждому датчику 2 провода, но обязательно оба их запаивать на ножке датчика, а не пропускать, как сейчас сделано через дополнительный тройник. И тоже обязательно на обоих концах нашей шины (на дальнем датчике и в самом Кситале должны быть установлены резисторы примерно по 10кОм (чтобы в сумме было около 4,7кОм).

Читайте также: Как правильно соединить алюминиевый провод с медным проводом

3. Диапазон допустимых нагрузочных сопротивлений шины, равный 1-5,1кОм дает нам третий вариант — возможность подключить простейшим путем до 9-ти датчиков (и других устройств), зашунтировав на питание вход каждого резистором 10кОм. В блоке Кситал — тоже резистор, 10кОм.
В этом случае не нужна единая шинная линия, а можно произвольно соединять датчики через удобно расположенные разъемы. Только резисторы надо припаять прямо на датчиках.

4. Есть и четвертый вариант более корректного подключения датчиков на шину Кситала — «паразитный» способ питания по двухпроводной шине.
Если использовать «паразитный» способ питания датчика, то ток через «входные» контакты разветвителей будет складываться из входного тока в сигнальный вход и тока питания датчика, что в сумме в несколько раз больше, чем только входной ток.
Поискал в документации на датчик — ток потребления датчика может достигать 1,5мА, что вполне можно считать четвертым вариантом. Правда, при это будет несколько ограничена суммарная длина используемых проводов — до 50 метров. Хотя, я бы резисторы все равно ставил (см. Примечания).
***
Считаю оптимальным 3-ий вариант и предлагаю разработчикам Кситала его реализовать в своих последующих системах.
Примечания:
1. Вообще-то, со всех точек зрения суммарное сопротивление всех резисторов на линии (шине) лучше сделать минимально допустимым, то есть — около 1 кОма.
2. Кстати, длинные провода к датчикам являются хорошими приемными антеннами для помех. Указанные мной резисторы, кроме вышесказанного еще и снизят входное сопротивление этих антенн и, как следствие, снизят уровень помехи в системе.
Можно еще почитать: О погрешностях измерений на примере датчика DS18B20.
На всякий случай привожу раскладку разъема.

18b20 максимальная длина провода

Значит так. Имею два адаптера, собранных по схемам

и

один без паразитного питания, второй с ним.
На обоих висят датчики ds18b20 на коротких линиях. Все ок. Решил вывести доп.датчик на улицу, нарастил линию на 10м. Провод использую МГТФ сечением 0,12мм. Сопротивление проводов от ближнего до дальнего датчика — 1.2 Ом. Но дальний датчик я не вижу ни на одном ни на втором адаптере, а с ближним все ок. Есть какие-нибудь идеи?
ЗЫ кстати замыкаю 1 и 2 ножку дальнего датчика на ближний, digitemp его обнаруживает. Замыкаю только 1 или только 2 — дальнего датчика не видно.
и пробовал на трех машинах, результат один и тот же, так что неисправность ком-порта отпадает.