подключение 4х DS18B20 к arduino uno

Bombastico
Offline
Зарегистрирован: 20.01.2019

Добрый день, форумчане.
спаял на макетке простенькую схему для подключения к ардуине 4х датчиков DS18B20 (посадил на 1 шину, между питанием и данными резистор 2,5кОм).

При подключении к Меге датчики выдают нормальную температуру (использовал пример Multiple из библиотеки DallasTemperature), а при подключении к Uno все, как один, постоянно показывают температуру ровно 25 градусов.

Можете подсказать кто виноват и что делать? :)

Пробовал к Uno подключать DHT11 на тот же пин - работает без проблем. Вроде бы все устройства исправны, но вместе работать не хотят.

sadman41
Offline
Зарегистрирован: 19.10.2016

Виноват известно кто. Делать - замену резистора на тот, что по даташиту полагается и проверять далласы по одному.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

1) Как подключены дачики (хотя бы питание прямое или паразитное) - ХЗ!
2) Как они программируются - ХЗ!
3) Почему используется резистор вдвое меньшего номинала? - ХЗ!

Bombastico пишет:

кто виноват?

Bombastico!

Bombastico пишет:

что делать?

ХЗ!

Bombastico
Offline
Зарегистрирован: 20.01.2019

sadman41 пишет:

Делать - замену резистора на тот, что по даташиту полагается и проверять далласы по одному.

Далласы по одному работают с резистором 4,7кОм и прямым питанием без проблем. все вместе на 1й шине с таким номиналом резистора не работают

в даташите прочитал следующее:
"Сопротивление резистора надо выбирать из компромисса между сопротивлением используемого кабеля и внешними помехами. Сопротивление резистора может быть от 5,1 до 1 кОм."
также яндекс подсказал, что "Для большого количества сенсоров (больше 10), надо использовать резисторы с меньшим сопротивлением (например, 1.6 КОм или даже меньше)."

поэтому попробовал сопротивление уменьшить и на меге все заработало, а на уно нет

естественно я не специалист и вряд ли понимаю все нюансы, но не понимаю почему при "прочих равных условиях" (одно питание, один скетч, одно сопротивление) они работают на одной плате ардуино и не работают на другой

Bombastico
Offline
Зарегистрирован: 20.01.2019

1. питание прямое
2. использовал пример Multiple из библиотеки DallasTemperature by MilesBurton (выше писал)
3. в 3м посте дополнительно описал почему попробовал номинал резистора уменьшить

про то, что сам виноват и так понятно, хочу понять в чем

sadman41
Offline
Зарегистрирован: 19.10.2016

Если все одинаковое, а результат разный, то надо вызывать экзорциста.  Полагаю, что питание вы измерили, а не прочитали его величину около пина, к которому термометры подсоединены

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Bombastico пишет:

1. питание прямое
2. использовал пример Multiple из библиотеки DallasTemperature by MilesBurton (выше писал)
3. в 3м посте дополнительно описал почему попробовал номинал резистора уменьшить

про то, что сам виноват и так понятно, хочу понять в чем

В не обижайтесь на некоторую раздражённость отвечающих, просто такие вещи здесь случаются каждый день и уже в печёнка сидят. Я попробую объяснить.

Вот Вы говорите "пример Multiple из библиотеки DallasTemperature by MilesBurton (выше писал)". И что, что Вы выше писали? По Вашему, я сейчас должен:

1. Развести кофейную гущу и угадать какая у Вас версия библиотеки (а их чуть более, чем до хрена)
2. Найти эту библиотеку гуглом и скачать её
3. Посмотреть что ж там за пример такой.

Вы правда думаете. что кто-то будет это делать? Может Вам таки выложить свой код (имеено свой, прямо копипастом из IDE, а не код примера, т.к. хоть что-нибудь, хоть номер пина, но Вы там меняли!) и дать ссылку на библиотеку?

Далее, я не зря спросил про резистор. Его величина зависит от ёмкости линии (от длины проводов и наличия соплей). Может Вам просто привести схему включения и фото сборки?

Вот, просто перечитайте Ваш вопрос и подумайте как Вам можно помочь?

Пока Вы не поймёте, что никто, кроме Вас не знает что там у Вас и как, и не предоставите информацию, ничего, кроме глума в теме не будет. Понимаете?

Bombastico
Offline
Зарегистрирован: 20.01.2019

вы тоже не обижайтесь, но все эти посты язвительные я не особо понимаю: хочешь помочь - помоги, нет времени или желания, раздражает вопрос - проди мимо, обязательств на техподдержку никаких нет, вопрос нарушает правила форума - удали, если админ. Что заставляет тратить свое время и писать посты типа "автор дурак иди у гугла спроси": превосходство свое показать что ли? так я вроде и не скрываю, что не специалист - моя работа далека от МК, программирую только софт и могу не указать что то существенное, которое мне показалост мелочью.

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

вопрос был следующий: почему может быть, что на меге все работает, а на уно - нет, при этом все, кроме плат - одинаковое: длина проводов, питание (от усб одного и того же ноута - на шину с датчиками уходит 5в плюс/минус 0,05в), отсутствие дополнительных подключенных устройств

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

 

в общем попробовал, огреб комментариев "специалистов" и ладненько, пойду сам поколупаюсь, всем спасибо)))

Bombastico
Offline
Зарегистрирован: 20.01.2019

тему удалить или закрыть можно здесь?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вас всего лишь попросили привести код, схему и фото сборки Но Вы упорно этого не делаете потому, что вбили себе в голову, что код и сборка не при чём. Ну, если Вы не специалист, то откуда Вам знать что может быть причём, а что - нет?

Вот Вы говорите

Bombastico пишет:

вопрос был следующий: почему может быть, что на меге все работает, а на уно - нет

Хотите я Вам выдам две причины почему так может быть? Абсолютно разные. И поверьте, есть и ещё много возможных причин.

1. если для такой ёмкости цепи резистор маловат, то оно может на только "работать на меге и не работать на уно", а даже "работать на одном экземпляре Меги и не работать на другом" или работать "на столе и не работать возле холодильника"

2. Откуда мне знать на какие именно пины Меги и Уно Вы цепляли свои датчик? Может Вы на мегу нормально прицепили, а на Uno зафигачили его на нулевой пин и пытаетесь читать? Тут был деятель, который читал аналоговый сигнал с пина PB5 контроллера ATtimy и тоже, как Вы, упорно не хотел ничего показывать. Мы полдня пытались понять в чём его проблема, а он нам вместо своего кода показывал пример из интернета в котором всё было нормально и читалось с пина PB2. А свой код не показывал, типа мол "а чо, я там только пин изменил".

Потому, выработалась чёткая привычка - если человек нуждается в помощи, пусть потрудится выложить СВОЙ (а не примера) код, СВОЮ (а не из Итернета) схему и, если надо, фото СВОЕЙ сборки. А если человеку лень это делать, то нам тем более лень заниматься его проблемой. Уж слишком часто бывает, что тратишь уйму времени только потому, вопрошающий решил в секретность поиграть.

Так что можете обижаться. Можете – нет. Но проблема у Вас, а не у участников форума, и если Вам лень ради решения своей проблемы код выложить или фотку сделать, то решайте её (проблему) сами. А если Вам кажется, что Вы лучше нас знаете что нужно делать для решения Вашей проблемы, а что – не нужно, так и делайте! Чего к нам-то обращаетесь?