Двоканальний термометр на ATTINY2313 та DS18B20

Цей проєкт робився мимохідь. Один вечір написання програми, наступний вечір виправлення декількох помилок, тестування “у залізі”. “Залізо” взагалі робив не я, а мій шкільний товариш для свого батька. Батько також радіоаматор, але на пенсії та далекий від програмування. Товариш гарний програміст, набагато кращий за мене, але дуже “зайнятий” та ледачий, а я дуже поважаю його батька, тож… Як казав Леонід Макарович – “маємо те що маємо”. Авжеж, в інтернеті ДУЖЕ багато термометрів на DS18B20, але ж чим мій має бути гірший?

dual_term

Стосовно схеми – не бачу що тут коментувати, все дуже просто та зрозуміло. Краще зупинюся на описі роботи. При включенні живлення термометр переходить в автоматичний режим. Температура з обох датчиків відображається по черзі протягом 4 секунд. Опитування датчиків також виконується один раз у чотири секунди. Тож маєте бути спокійними – все по документації, ніякого завищення температури не буде. Якщо натиснути на кнопку – автоматичний режим скасовується, відображення буде виконатися з одного датчика. Ще натискання – наступний датчик і т.д. Якщо нажати на кнопку більше ніж на 1.5с – ви побачите на індикаторі таке “- – -.-” та термометр перейде знову в автоматичний режим. Авжеж було б непогано розуміти який датчик відображається у цей час – для того є двоколірний світлодіод.

dual_term_pcb

Змонтовано все на дуже маленькій платі. Фактично розмір термометра дорівнює розміру індикатора. Індикатор – будь-який, червоний або зелений, с загальним анодом, або катодом (є дві прошивки в архіві нижче), висотою 0.56”. Наприклад цей. Живлення може бути у межах 7….13v, або стабілізоване джерело живлення 5v (USB, зарядний пристрій мобільного телефону), тож від VR1, C1, C2 можна у такому разі відмовитися. Тож… і все. А ні, не все. Ще ж фузи.

dual_term_fuses

Файли до проєкту:
1. Прошивки ЗК та ЗА
2. Схема, плата

40 коментарів до “Двоканальний термометр на ATTINY2313 та DS18B20

  1. Добрый день . посмотрел на вашу разработку ” Универсальный термостат -таймер. очень интересно . Возможно вас попросить проработать схему под мои пожелания сколько это будет стоить?

    • Здравствуйте, Виктор! Разработка новых устройств на заказ не самое дешевое удовольствие. Как правило разговор “начинается” от 100$ и выше. Разумеется с передачей в последствии всех исходников и документации. Тот проект о котором Вы говорите – очень древний, мне будет проще сделать с нуля, чем ворошить его. Если интересно – пишите сюда: electra@aliot.com.ua

    • Скорей всего программа написана на Ассемблере. Слишком мал размер памяти Tiny – 2 kB.
      Отсюда могу предположить, что в варианте от автора для экономии места, проще было инициализировать два датчика на разных пинах, чем городить “полноправную” шину.

  2. Добрый день electra.Можно ли в этом проекте использовать AT90S2313 ?Понятно что необходимо поставить кварц и выставить под него фьюзы а в остальном?

    • Здравствуйте Вячеслав. Сложно наверняка сказать. У Атмела вечно все не слава богу. Хотя все же скорее да, чем нет. Пробуйте. Если что – пишите – поковыряюсь, перекомпилирую.

  3. Здравствуйте Electra.Спасибо что ответили и дали мне надежду.Просмотрел внимательно схему и обратил внимание что все пины задействоваы.У AT90S2313 на 4 и 5 пине подключен кварц.Вот если бы вместо светодиода поставить кварц на 4мгц то думаю (надеюсь)что получиться.Реально ли сделать это?Если да и вас не затруднит перекомпилировать прошивку буду пробывать и о результатах отпишусь.Спасибо.

    • Здравствуйте, Вячеслав. Я же сказал – ПРОБУЙТЕ, будут проблемы – будем разбираться с ПО. Скорее всего и так все заработает. Без светодиода разумеется.

  4. Спаял устройство.Индикатор с общим анодом.Датчик пока только один.При включении быстро засвечиваються все точки потом все сегменты g и все сегменты во всех разрядах.Интенсивность свечения сегментов разное.Потом с интервалом примерно в 8 секунд в первом разряде хаотично гаснут и загораються сегменты.Не заработало.

    • Хм… Ну второй вариант – это уже скомпилированная прошивка конкретно под AT90S2313 c “выпиленной” обработкой светодиода и порта А вообще, подправленным регистром таймера. Компилятор ошибок не выдавал. ДОЛЖНО работать. К слову кварц должен быть на 8МГц. Проверяйте внимательно монтаж, а я вечерком еще пробегусь по регистрам, может быть есть еще где-то какой-то нюанс…

  5. Проверил монтаж кз нет.Камень стираеться и заливаеться нормально.Фьюзы не устанавливаються видимо заточен под внешний кварц.Поставил кварц на 8мгц все тоже только переключение происходит в 2 раза быстрее примерно 4 секунды.

  6. Уважаемый Electra дико извиняюсь.Был уверен что индикатор с общим анодом а на поверку оказался с общим катодом.если можно прошивку конкретно под AT90S2313 с общим катодом.Дякую.

  7. Доброго времени суток! Вопросы к автору: 1. Можно ли использовать 3-х разрядный индикатор, вместо 4-х разрядного? 2. Каков диапазон измеряемых температур? 3. Напряжение питания до 13В критично? Планирую от бортовой сети автомобиля запитывать, а при работающем двигателе до 14,4В может быть.

    • 1. Да. Но тогда лишитесь измерения десятых или знака “-“, смотря с какой стороны откажетесь от цифры. В первом случае отключайте сегмент h (точку) полностью.
      2. Это всецело параметры датчика. Теоретически от -40 до +125, практически нормально меряет от -20 до +85.
      3. Поставьте вместо 1117S50 – обычную 7805, у нее “дури” поболее… До 30в можно будет не задумываться.

  8. Спасибо за ответ. После сборки и тест-драйва устройства, отпишусь – сообщу результат, поделюсь наблюдениями.

  9. Вот и всё готово. Термометр собран, всё работает. Обратил внимание, что плата разведена с отклонениями от схемы электрической принципиальной, а именно: резисторы 4,7кОм включены между выводами 7 и 11 контроллера и +5В, а в схеме они стоят между выводом DQ датчиков и +5В. Плату перетрассировал под 78М05 с дополнительным фильтром питания и изготовил промышленным способом (вот почему так затянулся “финиш”). На вид выглядит как заводское изделие. Если кому-то интересно – могу предоставить гербер-файлы платы. Заметил, что разница в показаниях датчика на длинном “поводке” и датчика на коротком примерно градус-полтора. На автомобиль пока не устанавливал, а проверил работоспособность в лабораторных условиях. Спасибо автору за участие.

    • Разводка – такое дело… Грандиозной разницы нет, будет и так и так работать. Хотя правильнее разумеется как на схеме. Насчет разницы: если датчик впаян на плату или припаян ОЧЕНЬ коротким проводом – 1…2см – то он может банально нагреваться от Вашей 78M05. Если же нагрев по Вашему мнению исключен – то проблема разумеется в разных датчиках. Уж очень много на рынке “китайских аналогов”. Хотя DS18B20 я бы и не называл особо точным даже в оригинале. Он просто удобный.

  10. Добрий день electra. Зібрав запропонований термометр, дякую за розробку. Все працює, але є різниця в показниках. Обидві мікросхеми DS18B20 виніс за межі плати, при розміщені рядом, різниця показників від 0,9 до 2,5 градусів, залежно від екземпляру DS18B20 (перепробував 5 шт.). Тому прохання, чи можна в прошивку (загальний анод) додати можливість ручного коригування показників одного з датчиків.

    Завчасно вдячний.

  11. Добрый день.
    Собрал термометр, но на ножках контроллера, которые идут на индикатор (ОА) около 2 вольт (относительно анода) , и индикатор естественно слабо светит. Индикатор с сегментами на 4 В. Точка индикатора 2 В. Чтобы разгрузить порт МК, поставил 4 эмиттерных повторителя на аноды индикатора. Естественно уменьшил сопротивление токоограничивающих резисторов.Относительно корпуса (-5В) на анодах показывает 3 В. Я совсем запутался. Не могли бы Вы подсказать в чем подвох? Какой режим работы порта? Корректно ли использовать индикатор с сегментами на 4 В?
    Спасибо.

  12. Добрый день. Заработало!!!!!!!.Огромное спасибо за хорошее устройство!!!! Только вот не хочет работать с датчиками в режиме паразитного питания. Просто хотел подключить по двум проводам , 12м тянуть на улицу.А может всетаки возможно?

    • Витухой экранированной можно попробовать)
      Делал USB-удлиннитель 15 метров))

  13. Добрий день electra .МОЖЕТЕ ПОПРАВИТИ ПРОШИВКУ ЩОБ ПОКАЗИ ТЕРМОМЕТРА БУЛИ НАПРИКЛАД: 20*С, -20*. ДЯКУЮ!

  14. Здравствуйте!
    Почему то не всегда выходит на индикатор Err.r, когда датчика нет!Какие то хаотичные показания, типа: ” – 9,1″. А почему так?

  15. Собрал устройство, отлично работает.
    При проектировании платы не учел расположение ног китайских индикаторов.
    Вопрос к electa:
    А можно ли попросить прошивку с ОА в которой было бы следующее?:
    1. PB7 (19) – g индикатора
    2. PB5 (17) – f индикатора
    3. PB6 (18) – а индикатора
    4. PB0 (12) – b индикатора
    Спасибо

  16. Здравствуйте! А не могли бы Вы сделать опрос датчиков температуры 1 раз в минуту? Имею отношение к метрологии. Калибровал кучу 18b20 для себя.Заметил такую особенность.При опросе датчиков температуры “по даташиту” , разогрев датчиков идёт всёравно! А вот когда идёт опрос 1 раз в минуту, то его нет! Вернее, датчики находятся в допустимом диапазоне погрешности по даташиту.Но наиболее близкие показания с образцовым термометром (0,025 кл.т.) , когда опрос датчика 1 раз в минуту.

    • З окупантами не співпрацюю. Та і навіщо це, якщо ця ваша “мєтрологія” потім мені у хату прилетить, як у сусідньому Маріуполі?

  17. Ув. Electra, большое спасибо за интересную схему. Завелась с пол-пинка. Один канал будет показать температуру дома, другой – за бортом. Подсел на Ваш сайт, доходчиво все описано и разжевано. Термометр – первая ласточка. Буду собирать ампервольметр и паяльную станцию.

  18. Доброго дня! Підкажіть будь-ласка яка точність цього термометра, чи можна його використовувати для вимірювання температури тіла ?

  19. Вітання! з2018 року зібрано 3 таких пристрої,чудово працюють й досі!Дякуєм автору!
    Творочої наснаги,хоч і в Канаді!
    Бердянськ-Україна!

Залишити коментар до electra Скасувати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *