• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Проблема при подключении DS18b20

Colibrilab

New member
Доброго всем дня. Помогите с советом. Подключаю датчик DS18B20 к ESP8622 NODE MCU. Выдаёт -127, как будто датчик не подключен. Резистор 4,7К между сигнальным и питающим проводом есть. Библиотеки OneWire и DalasTemperature взял адаптированные под ESP8622. Для проверки пинов подключил LCD2004 - всё работает. Взял другой датчик - аналогичная картина.
 

Сергей_Ф

Moderator
Команда форума
@Colibrilab на чем пишете? И где код? Какой пин задействуете? Какое напряжение питания датчика?
 

Сергей_Ф

Moderator
Команда форума
@Colibrilab думаю с пинами ошиблись. Попробуйте подключить к d4 == gpio2 и в коде OneWire ds (2);
Питание датчика +5в. Должно работать.
 

Colibrilab

New member
@Colibrilab думаю с пинами ошиблись. Попробуйте подключить к d4 == gpio2 и в коде OneWire ds (2);
Питание датчика +5в. Должно работать.
Сенсор работает в диапазоне напряжений от 3.0 В до 5.5 В. Поэтому питание здесь не при делах. Один сенсор потребляет не много тока, чтобы просадить контроллер. Но я попробовал и с внешним питанием - аналогичная ситуация. Интересно то, что на GPIO2 всё работает. Но на других портах нет. При этом, пины живые - на них работает LDC2004. Как так?
 

Colibrilab

New member
Вы имеете в виду их нумерацию? Но тогда бы не работал LCD2004. К тому же я еще проверял их работоспособность командой digitalWrite. Проблема именно с датчиком DS18B20. Полагаю, что проблема может быть только в библиотеке OneWire. Хотя я её скачал как раз под ESP8622. Не могли бы Вы поделится своей ссылкой на данную библиотеку?
 

tretyakov_sa

Moderator
Команда форума
Сенсор работает в диапазоне напряжений от 3.0 В до 5.5 В. Поэтому питание здесь не при делах. Один сенсор потребляет не много тока, чтобы просадить контроллер. Но я попробовал и с внешним питанием - аналогичная ситуация. Интересно то, что на GPIO2 всё работает. Но на других портах нет. При этом, пины живые - на них работает LDC2004. Как так?
На GPIO2 уже есть резистор он подтягивает вход к питанию, значит датчик должен работать с прямым подключением без резистора. Будет работать и на GPIO0, к другим пинам обязательно подключать резистор, если не работает проверяйте правильность номинала резистора. Не будет работать на GPIO15 и GPIO16.
 
  • Like
Реакции: pliz

Colibrilab

New member
На GPIO2 уже есть резистор он подтягивает вход к питанию, значит датчик должен работать с прямым подключением без резистора. Будет работать и на GPIO0, к другим пинам обязательно подключать резистор, если не работает проверяйте правильность номинала резистора. Не будет работать на GPIO15 и GPIO16.
Сам в шоке :) Конечно, уже проверил резистор - 4,8К. Попробовал 3К и 6К - аналогично. На GPIO2 всё работает, на остальных нет. И пины рабочие - прочая периферия на них работает.
 

Сергей_Ф

Moderator
Команда форума
проблема может быть только в библиотеке OneWire. Хотя я её скачал как раз под ESP8622. Не могли бы Вы поделится своей ссылкой на данную библиотеку?
я пользовался стандартной, но только на пине 2. Остальные не проверял. Если удастся проверить сегодня, отпишусь.
 

Сергей_Ф

Moderator
Команда форума
@nikolz если бы @Colibrilab знал бы Луа, Ваш совет был бы не нужным, а так бессмысленен, поскольку сначала надо Луа изучить. Не так ли?
 

Colibrilab

New member
если взяли nodemcu, то пишите на луа. В разы меньше писать и все будет работать.
Если бы у бабушки был бы ... Спасибо за совет. Но у меня есть рабочий скетч для контроллера, который чудесно работает на Arduino в таком девайсе: Контроллер ректификационной колонны - окончательный вариант . Не собираюсь его переписывать, а собираюсь переделать саму плату под nodemcu. Как-нибудь займусь прочими способами программирования контроллера, но пока меня интересует вопрос почему DS18B20 не работает на других пинах, кроме GPIO2? Вы знаете ответ? Если не знаете, то прочие советы не интересуют.
 

tretyakov_sa

Moderator
Команда форума
Сам в шоке :) Конечно, уже проверил резистор - 4,8К. Попробовал 3К и 6К - аналогично. На GPIO2 всё работает, на остальных нет. И пины рабочие - прочая периферия на них работает.
Только что проверил на 12 ноге все работает. Питание 3.3В резистор 10K.
 

Сергей_Ф

Moderator
Команда форума
@Colibrilab проверил на Witty Cloud ESP-12E на пине 5 и 4 стандартный пример из стандартной библиотеки OneWire (не адаптированной под ESP, а той что ставится из менеджера библиотек) работает без проблем. Питание датчика +5В, резистор 4,7 кОм.
На 15-том работать не может, поскольку при старте он должен быть притянут к нулю.
 
Последнее редактирование:

Colibrilab

New member
Полагаю, что это не окончательный вариант.
В контроллере блоки 4, 8 и 9 выкидывайте и ставьте nodemcu.
-----------------------------
Я для подобной задачи сделал спектрометр на диапазон от 0.2 до 0.8 мкм.
------------------------------------
Контроль качества спирта в соответствии с ГОСТОМ делается в диапазоне 0.2-0.4 мкм.
Этим и занимаюсь :) Я бы не заморачивался, но при использовании Arduino упёрся в нехватку оперативной памяти и памяти под скетч. В связи с этим пришлось отказаться от реализации некоторых фишек. Поэтому взял nodecmu. А что за спектрометр у вас?
 

Colibrilab

New member
Только что проверил на 12 ноге все работает. Питание 3.3В резистор 10K.
Спасибо. Какой-то полтергейст :) Самое смешное, что у меня два модуля nodecmu. И оба себя ведут так же. Попробую найти другую библиотеку OneWire - других причин сие гемороя не вижу.
 

Colibrilab

New member
@Colibrilab проверил на Witty Cloud ESP-12E на пине 5 и 4 стандартный пример из стандартной библиотеки OneWire (не адаптированной под ESP, а той что ставится из менеджера библиотек) работает без проблем. Питание датчика +5В, резистор 4,7 кОм.
На 15-том работать не может, поскольку при старте он должен быть притянут к нулю.
Спасибо за потраченное время и внимание. Пока ситуация не прояснилась. Поэкспериментирую с другими версиями библиотеки OneWire.
 

Сергей_Ф

Moderator
Команда форума
@Colibrilab а не проще в скетче пин поменять, если на 2ом всё работает? Там же все равно вся разводка другая будет.
 
Сверху Снизу