Страница 1 из 2
Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Вт апр 30, 2019 20:37:03
dima1967
Доброго дня всем!
Хотелось бы подключить датчик DS18B20 к Атмеге16 по двухпроводной схеме. По простому варианту не получилось. Имею ввиду соединение ножек датчика + и земля и далее одним проводом на землю устройства, а шину данных притянули к + питания резистором 4,7К. Такое у нас не прошло. Датчик выдает цифру 85 и ни на что не реагирует. При подключении этого датчика по даташиту, то есть с тремя ножками, все работает и температуру на 7 сегментном индикаторе показывает правильно. Хотелось бы избавиться от 3-го проводка на датчике. Схему с мосфетом в даташите видел. Но не хочется усложнять мосфетом схему и прошивку. В интернете вроде пишут, что можно и без мосфета такое делать если иметь библиотеку под это. В моей библиотеке такого вроде нет, да я и новичок совсем с МК. И еще проблема в том что все работают на СИ, а мы с товарищем на Паскале только умеем прошивки писать. Подскажите где можно взять библиотеку на Паскале для 2-х проводного подключения DS18B20 без мосфета. И вообще можно ли в принципе так подключить?
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Ср май 01, 2019 00:16:21
Аlex
Если по 3-ём проводам всё работает, то с программной частью всё в порядке. Она ничем не отличается от подключения по 2-ум проводам. Отличие только в железе.
Какое сопротивление подтяжки стоит ?
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Ср май 01, 2019 07:33:25
alex_
А какова длина линии? У меня на 3 проводной при увеличении длины(до 10 - 15м) с резистором 4К7 не стал работать, пришлось уменьшить резистор до 2К.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Ср май 01, 2019 08:04:03
Starichok51
ясное дело, что никому не хочется усложнять схему и ставить мосфет на время конвертации температуры.
дело в том, что во время конвертации увеличивается потребление, и при 2 проводах на резисторе подтяжки образуется дополнительное падение напряжения.
я пробовал делать по 2 проводам при изменении напряжения питания.
я делал термометр с питанием от литиевого аккумулятора и тоже хотел обойтись двумя проводами.
у меня получилось,что датчик начинал врать при снижении питания ниже 3,5 Вольт, когда из-за падения на резисторе стало не хватать напряжения питания для нормальной работы датчика. пришлось, все таки, ставить третий провод.
и ножку "+" датчика нужно оставлять в воздухе, а не соединять с "землей". может, из-за этого соединения конвертация не работала вообще.
и можно еще сопротивление резистора уменьшить, чтобы снизить падение на нем во время конвертации температуры.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Ср май 01, 2019 09:37:00
dima1967
Аlex писал(а):Какое сопротивление подтяжки стоит ?
Сначала пробовали как везде написано 4,7К, потом поставили подстроечник и крутили на нем до 1,2 К. Меньше не делали. Все время показывает 85 град.
alex_ писал(а):А какова длина линии?
Длинна линии 5 метров. Питание 5 вольт.
Добавлено after 16 minutes 4 seconds:
Starichok51 писал(а):и ножку "+" датчика нужно оставлять в воздухе, а не соединять с "землей".
А такое может прокатить если питание 5 вольт от БП?
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Ср май 01, 2019 10:21:39
Аlex
dima1967 писал(а):крутили на нем до 1,2 К
Можно, конечно, попробовать поменьше (ОМ до 600...800) - ничего страшного не случится. Но с 1К один датчик должен работать.
Попробуйте, в качестве эксперимента, уменьшить длину линии до минимума. Заработает ли вообще что-нибудь...
Starichok51 писал(а):ножку "+" датчика нужно оставлять в воздухе, а не соединять с "землей"
Откуда такая информация ? От производителя ?
Просто первый раз слышу. Всегда соединял "+" и "-" между собой, и всё работало.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Ср май 01, 2019 13:13:25
korob
Аlex писал(а):Всегда соединял "+" и "-" между собой, и всё работало.
Всё верно.
Из даташита:
Спойлер

Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Ср май 01, 2019 13:27:12
dima1967
Аlex писал(а):Но с 1К один датчик должен работать.
Попробуйте, в качестве эксперимента, уменьшить длину линии до минимума.
Это сегодня вечером обязательно попробую, тем более мне 5 метров и не надо, просто провод такой был и резать не стал. Надежду не теряю....

Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Ср май 01, 2019 16:06:54
ARV
разница в соединении по двум и по трем проводам следующая:
1. раньше выпускались датчики с суффиксом PAR и без оного - первые могли работать на двупроводном интерфейсе, вторым требовался третий провод питания. позже все датчики стали поддерживать паразитное питание.
2. при двупроводном подключении (с паразитным питанием то есть) на время преобразования необходимо (!!!) соделинять DQ и VCC, т.е. подавать питание на линию данных напрямую, а не через резистор.
3. при паразитном питании вывод VCC датчика должен соединяться с выводом GND датчика
таким образом, если есть библиотека, которая работает в 3-проводном режиме, то её легко можно адаптировать к 2-проводному: достаточно после выдачи команды начала преобразования температуры как можно быстрее настроить порт DQ в режим выхода и выдать на него единичку. спустя время преобразования (примерно 800 мс для 12-битного режима) режим работы порта линии DQ восстановить, как был (для семейства AVR это режим входа без подтяжки, как правило). других изменений библиотечка не потребует.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Ср май 01, 2019 16:29:10
korob
1) Неправда.

Изначально все датчики работали в обоих режимах запитывания, потом появились с суффиксом "
PAR" работающие
исключительно в паразитном режиме питания (выв.3 у них попросту не используется - NC).
2) Необязательно, но крайне рекомендуется производителем (та самая схема с полевиком, которую не хочет собирать ТС).
3) Здесь согласен, выше привёл цитату из даташита (причём самого первого, от Dallas). Для датчиков с суффиксом "
PAR" это не имеет значения.

Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Ср май 01, 2019 17:49:37
BOB51
Переделка относительно простая.
Единственно обязательный контроль линии на КЗ перед очередным включением и в процессе работы дабы случайно выходной каскад МК не спалить.
При длине проводков до пары метров особых проблем нету. При большей - надо специальный апппаратный блочек ставить (даже и для 3-х проводной при значительном расстоянии). Сам шлейф предпочтительно из телефонного кабла с 4мя жилками.
http://img.radiokot.ru/files/20529/i1yvpkie4.jpg датчик на шлейфе
http://img.radiokot.ru/files/20529/kc1ezblxl.JPG схемка с линейным усилитель/коммутатором
http://img.radiokot.ru/files/20529/1us0r4a0ua.GIF собственно сама схема адаптера
Без адаптера для 3-х проводной длина до 3 метров гарантируется.
Основные прожки предпочтительно на ассемблере делать, хотя и на СИ (если достаточная квалификация) или готовенькое из библиотек адурин.

Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Ср май 01, 2019 17:57:46
dima1967
ARV писал(а):2. при двупроводном подключении (с паразитным питанием то есть) на время преобразования необходимо (!!!) соделинять DQ и VCC, т.е. подавать питание на линию данных напрямую, а не через резистор.
3. при паразитном питании вывод VCC датчика должен соединяться с выводом GND датчика
Я немного запутался. Как все таки соединять? Ногу данных соединять с ногой питания или с ногой земли?? И без резистора вообще?
ARV писал(а): достаточно после выдачи команды начала преобразования температуры как можно быстрее настроить порт DQ в режим выхода и выдать на него единичку. спустя время преобразования (примерно 800 мс для 12-битного режима) режим работы порта линии DQ восстановить, как был
Так мы попробовали с резистором 1,2 К между ногой данных и + питания, но ничего не вышло. У меня сейчас подключено так: Ноги земли и + питания датчика спаяны вместе и идут на землю МК. А нога данных идет напрямую в порт МК и этот вход притянут резистором 1,2 К к + питания. Мы ему вообще не 800 мкс а больше 1 сек дали.
Подскажите пожалуйста четко как соединить ноги датчика и порт МК чтобы попробовать завести датчик по Вашей методе.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Ср май 01, 2019 19:28:46
BOB51
Соединение согласно даташита
Для работы на начальном этапе (если нет особых навыков по развороту линии порта с ввода на вывод и обратно) лучше использовать включенные параллельно выводы МК, один из которых настроен как выход, а второй как вход.
И почитайте таки матчасть...
можеть чего и проясниться...

Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Чт май 02, 2019 07:04:41
Starichok51
извиняюсь, я был невнимателен при чтении даташита, и свои эксперименты проводил с ногой питания, висящей в воздухе.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Чт май 02, 2019 08:22:54
BOB51
У так называемого "паразита" лапка питания вообще НЕ ПОДКЛЮЧЕНА (NC).
(пардонс за дубль даташита

)
Так что вполне оправданная ошибка при наличии таковых разновидностей в лапах.

Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Пт май 03, 2019 17:48:45
borys
Непонятно только одно - почему так необходимо именно двухпроводное подключение?
Неужели так подорожали провода? При двухпроводном подключении эти датчики просто
не будут работать по настоящему хорошо. В даташите об этом говорится и практика
подтверждает.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Пт май 03, 2019 21:17:09
vlasovzloy
да много случаев, в холодтльнике например двух проводные и просто так не просунешь, все запенено
Добавлено after 16 minutes:
а если через шотти конденсатор побольше емость заряжать на vdd, дать паузу при включении для зарядки конденсатора несколько секунд? даллас же молчит изначально пока к нему не обратились
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Сб май 04, 2019 08:20:41
BOB51
Так и делается.
Только доки/аппноты не относительно DS18x20 который чаще всего встречается в радиолюбительских конструкциях,
а документацию на IBiutton читать надо.
Воть подборка переводного минимума в одной кучке:
и сам хэндбук

Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Сб май 04, 2019 09:46:57
vlasovzloy
Я предлагаю к обычному однопроводному интерфейсу резистор 2 кОма например или меньше, лижбы авр вытянула. А на стороне далласа диод шотки с выхода на питание и конденсатор побольше. При включении держим паузу чтобы емкость зарядилась. Или даже еще лучше дсдс какойто мелкий возле далласа от 1,5 вольт или меньше как в сигналках
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Добавлено: Сб май 04, 2019 10:13:23
BOB51
При "двухпроводном" питание не через резистор, а через открытый ключ.
Частный случай - разворот вывода МК на выход и подача в линию уровня 1,
а при работе тот же вывод в режиме входа с внешним резистором в 2,3-3,6 килоома.
Как вариант - внешний "верхний ключ" и/или отдельный вывод МК.
