Датчик температуры DS18B20 и LCD дисплей

В этой статье, доработаю показанный ранее пример с датчиком DS18B20+, вывод температуры через последовательный монитор порта, является полезным, но мало практичным. В примере будем выводить температуру на LCD-дисплей работающий по протоколу I2C.

Датчик температуры DS18B20 и LCD дисплей

Датчик температуры DS18B20 и LCD дисплей

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► LCD-дисплей 1602A (2×16, 5V, Синий) x 1 шт.
► Интерфейсный модуль IIC, I2C, TWI для LCD x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
► Датчик температуры DS18b20+ x 1 шт.
► Резистор 4.7 кОм x 1 шт.
► Макетная плата MB-102 (Breadboard) x 1 шт.

Подключение:
Для вывода температуры на LCD дисплей с датчика DS18b20, будем использовать плату Arduino UNO. Собираем схему, которая показана ниже, для удобства дополнительно нарисовал таблицу подключения.

Датчик температуры DS18B20 и LCD дисплей

Таблица подключение

Датчик температуры DS18B20 и LCD дисплей

В примере используется три дополнительных библиотеки LiquidCrystal_I2C, DallasTempature и OneWire, необходимо скачать их и установить, без них скетч не заработает. Далее, скачиванием скетч и запускаем среду разработки IDE, если все правильно сделали, на дисплее отобразится температура.

  Скачать скетч

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

Ссылки
  
Скачать библиотеку DallasTemperature
  Скачать библиотеку OneWire v.2.2
  Скачать библиотеку LiquidCrystal_I2C
  Документация к LCD1602A

Купить на Aliexpress
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Провода DuPont, 2,54 мм, 20 см
  Датчик температуры DS18b20
  LCD-дисплей 1602A

Купить в Самаре и области
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Провода DuPont, 2,54 мм, 20 см
  Датчик температуры DS18b20
  LCD-дисплей 1602A

27 комментариев для “Датчик температуры DS18B20 и LCD дисплей”
  1. подскажите пожалуйста в чём проблема? скетч загрузил, подключил. на экране информация:
    TEMP -127. C
    http://www.rchip.ru
    температура не изменяется. датчик DS18B20 модуль

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

  2. Братцы, если есть возможность, помогите плиз в такой проблеме.
    Решил я тут недавно слегка автоматизировать процесс самогоноварения.))) чем давно и плодотворно занимаюсь. точнее, не то чтобы автоматизировать, а обезопасить процесс в случае всяко-разных нештатных ситуаций. а именно: 1. отключение подачи воды на холодильник самогонного аппарата , 2. заполнение готовым продуктом «до верха» емкости, в которую он льется. имеется: Arduino UNO, реле, датчик температуры ds18b20, датчик уровня жидкости, жк-дисплей, аналогичный рассмотренному в примере выше. вопрос в следующем. поскольку я кодить давно разучился, да и кодил исключительно на машинах типа Искра-1256 (прошу не ржать!), подскажите, как прикрутить к коду приведенного примера: а.)управление на отключение нагрева перегонного куда (индукционная плита) посредством управляющего реле, выдача звукового сигнала, когда емкость с самогоном (ням-ням) заполнена доверху, т.е. датчик уровня жидкости отсигналил об этом.
    Буду очень признателен, если поможете, добрые люди.))

    1. Тоже хочу сделать подобное чудо.
      + хочу сделать полную автономку. т.е. регулировку температуры атоматом.

  3. Ктож скоро казенку пить будет? Тоже варю-гоню. Ни как у меня компиляция не проходит. Библиотеки DallasTemperature и LiquidCrystal_I2C не видит.

    1. Добрый день, проверьте расположение библиотек DallasTemperature и LiquidCrystal_I2C в каталоге C:\Users\ваш профиль\Documents\Arduino\libraries

  4. Спасибо. Все проверил. Помогла переустановка программы. Сейчас пишет ошибка кампиляции для платы WAWCAT. Плату я уже удачно спалил. Сейчас заказал рекомендованую в теме. Но при выборе любой платы в программе ошибка не проходит.

  5. Всё проверил. Сначала не работало, а потом понял, что на схеме резистор не в питание вставлен, а в землю 🙂
    Спасибо за статью, очень помог!

  6. Добрый день, только начал изучать программирование, будьте добры, скажите в какой среде разработки вы работаете?
    По дизайну программы сориентироваться не получается

    1. Здравствуйте, среда разработки Arduino IDE, скачать можно бесплатно с официального сайта arduino.cc

      1. Сергей, можно ли с вами как-то связаться?
        Или, возможно, в обсуждении к данной статье удастся решить следующих вопрос — при загрузке программы в Arduino Nano высвечивается следующая ошибка:
        «avrdude: stk500_recv(): programmer is not responding
        avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x3a»
        И так до десяти попыток, потом загрузка прерывается, значение после «resp=0x» часто меняется
        Возможно вы знаете как это исправить? Все параметры и порты указал в IDE правильно, пробовал выставлять разные программаторы в инструментах, но результат один
        Хочу прошить ARDUINO NANO V3 AVR ATM328P-20AU CH340
        Разумеется, буду безумно вам признателен, если поможете решить мою проблему

        1. Добрый день, пищите на почту или в вайбер, телефон на странице контакты.

          1. Нашёл решение проблемы, оказалось, что для записи программы в клон Нано необходимо установить следующий Драйвер — CH341SER, без него Arduino IDE работает только с оригинальными платами =)

  7. Здравствуйте, Сергей. Вы занимаетесь программированием на МК? Меня интересует схема 2-х канального термометра на МК. Я ищу любителя-программиста, с которым я бы смог воплотить в жизнь свою задумку. Немного расширить функционал термометра, использовать более крупный ЖК дисплей, добавить некоторые модуля. Если в принципе согласны, то можно пообщаться далее. А заодно скажите пожалуйста почту для общения и передачи файлов.

      1. Здравствуйте, Сергей! Непонятно, получили ли вы от меня сообщение по поводу 2-х канального термометра на МК?Если получили и вас это не заинтересовало, отпишитесь пожалуйста, я тогда буду искать дальше.

  8. Можно ли сделать этот проект с датчиком DHT11 и со всеми 16 контактами дисплея.

  9. Подскажите пожалуйста как правильно выводить температуру без цифр после точки (целое значение без десятых)?

    1. Здравствуйте, можно создать переменную с типом данных int
      пример:
      int temp = sensors.getTempCByIndex(0);
      lcd.print(temp);

  10. Здравствуйте! Может подскажете, ну или помочь. А можно ли во второй строке дисплея вывести адрес подключаемого датчика? Хочу собрать устройство для тестирования датчиков Dallas.

  11. Добрый день! Только начал заниматься ардуино. Хотел сделать этот проект, но при проверке программы возникла ошибка:

    exit status 1
    Ошибка компиляции для платы Arduino/Genuino Uno.

    Может кто-то подсказать как решить?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *