Skip to content
 

Двоканальний термометр на 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. Схема, плата

28 Comments

  1. Олександр сказав:

    Чудово як раз те що недавно шукав. Велике спасибі.

  2. Виктор сказав:

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

    • electra сказав:

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

  3. Goracio сказав:

    Посади термометры на одну шину – сэкономишь порт. 100 баксов!

    • radiomanoff сказав:

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

    • electra сказав:

      Сэкономишь ПИН может быть? За это нынче платят 100$? Вау.

  4. Вячеслав сказав:

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

    • electra сказав:

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

  5. Вячеслав сказав:

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

    • electra сказав:

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

  6. Вячеслав сказав:

    И в дополнение – в качестве светодиода использовать крайнюю правую точку(вкл и выкл).

  7. Вячеслав сказав:

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

  8. Вячеслав сказав:

    Попробовал- существенных изменений нет.

    • electra сказав:

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

  9. Вячеслав сказав:

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

  10. Вячеслав сказав:

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

  11. Вячеслав сказав:

    Заработал.Огромное спасибо!!!!

  12. Alex сказав:

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

    • electra сказав:

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

  13. Alex сказав:

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

  14. Alex сказав:

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

    • electra сказав:

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

  15. Vic сказав:

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

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

  16. Дима сказав:

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

Leave a Reply