Skip to main content

Черно-белый термометр с большими цифрами

Схем и конструкций термометров в сети огромное количество, на любой вкус и цвет. Казалось бы, выбирай и делай. Но с другой стороны, именно этот факт и стимулирует (по крайней мере меня) придумывать что-то интересное, не похожее на остальное. Так случилось и в этот раз, когда мне понадобилось собрать уличный термометр с большими цифрами.

Краткие характеристики:
Диапазон измеряемой температуры-55°C - +125°C
Период опроса датчика10 секунд
Напряжение питанияDC 6-40В

На самом деле проблемы-то нет никакой, большие семисегментные индикаторы существуют, но в данный момент у меня таких нет. Заказывать и ждать нужно время, да и обыденно это все. Индикаторов нет, но есть куча SMD светодиодов, лист ПВХ пластика и ЧПУ станок. Попробуем из этого набора соорудить что-нибудь интересное.

Схема и плата.

Схема особенностей не имеет, микроконтроллер ATmega8A в корпусе TQFP, датчик DS18B20, индикация статическая на сдвиговых регистрах 74HC595 усиленных сборками Дарлингтона ULN2003. Питание на ШИМ-регуляторе LM2596. Применение отдельных светодиодов позволило создать собственные символы (стрелки изменения температуры).

Плата двухсторонняя.

bw_thermo_01
bw_thermo_02
bw_thermo_03
bw_thermo_04
bw_thermo_05
bw_thermo_06
Корпус.

Изготовить плату это половина дела, устройству обязательно нужен корпус. Который я решил сделать из ПВХ пластика толщиной 8 мм. Материал довольно мягкий, но и устройство не носимое, так что, думаю, вполне годный вариант. В качестве первого эксперимента был изготовлен классический вариант (часть панели для издевательств).

Вариант жизнеспособный, но немного скучный. Обычный семисегментник, ничего необычного. Была мысль залить сегменты эпоксидкой с красителем, но как-то не очень хорошо отреагировал пластик на эпоксидную смолу (стал размягчаться), потому отложил этот вариант на будущее.

И тогда родилась другая идея: сделать сегменты не сплошными, а выполнить перфорацию. Вот так выглядит верхняя крышка до покраски.

Покрашен корпус матовой алкидной эмалью из баллона. В какой-то момент промелькнула мысль, что попавшая в отверстия краска уменьшит угол обзора индикатора, но в дальнейшем этот факт никак не проявился.

С обратной стороны в корпусе выфрезерованы углубления под светодиоды и резисторы. Плата устанавливается в предназначенный для нее карман и фиксируется маленькими саморезами.

В нижней части корпуса точно так же вырезаны углубления для микросхем, конденсаторов, разъемов и выполнена перфорация для охлаждения.

Мне кажется, в результате получился довольно необычный индикатор с хорошим углом обзора и интересным эффектом отображения.


  • Немного о периоде опроса датчика и стрелках изменения температуры.

Определение изменения температуры реализовано "в лоб": при измерении значение температуры запоминается, а далее с определенной периодичностью измеренная температура сравнивается с ранее сохраненной, после чего принимается решение. В исходном варианте датчик опрашивается раз в 10 секунд, а "окно" определения изменения температуры - 15 минут. При желании эти параметры можно изменить.

#define UPD_SENS 11	// период опроса датчика (секунды - 1)
#define UPD_STAT 90	// период обновления указателя температуры (количество опросов датчика) 90*10сек = 15 мин

Фьюзы

Необходимо перевести тактирование внутреннего генератора на частоту 4MHz (с завода генератор настроен на частоту 1MHz). Слежение за напряжением питания настроено на 2,7V (впрочем, это не обязательно).

High Fuse: 0xD9
Low Fuse:  0xA3


Видео

Загрузки
Значок
Черно-белый термометр с большими цифрами

Схема, плата (DipTrace), сборочный чертеж, прошивка, исходный код.

14 комментарии в “Черно-белый термометр с большими цифрами”

  1. Здравствуйте. Интересный проект. Решил повторить и заодно освоить недавно приобретенный чпу3018. Не могли бы вы выложить модель корпуса в stl? Думаю его напечатать, а затем покрасить)
    Не знаю, посчитаете ли вы эту просьбу наглостью, но очень бы хотелось заиметь ваши библиотеки для диптрейса)

    1. Здравствуйте. Увы, с проектом корпуса случилась весьма скверная история: создавался он в среде Fusion 360, а сие поделие использует облачное хранилище. Ну и в один не очень приятный момент, файлы этого проекта стали просто недоступны. А выгрузить модели я не успел, как это обычно бывает. Так что теперь только заново корпус создавать. Но сейчас я такой термометр сделал бы на адресных светодиодах, что гораздо проще в плане схемотехники и разводки печатной платы. Ну и возможности в плане визуализации шире. На тот момент просто захотелось сделать именно статическую индикацию. А корпус попробовал бы напечатать на 3D принтере. Надо вообще попробовать на тестовых образцах, как оно получится... Библиотеки чуть позднее на почту отправлю.

      1. Адресные дороговато для простого термометра.
        А здесь элементная база очень доступна и дешева, если приобретать ее у восточных партнеров)

        1. Ну в принципе, 100 штук WS2812B можно купить у наших маленьких китайских друзей за 230 рублей, что вполне себе доступно. Плюсом, можно свистоперделки реализовать, типа изменения цвета, в зависимости от температуры. Но это уже такое себе, конечно. Дело личных предпочтений. 🙂

          1. Здравствуйте еще раз) Как вы на такой большой плате сделали красивую и равномерную маску? Я ковырялся-ковырялся, да потом просто кисточкой ее размазал, так как не получалось сделать хоть сколько-нибудь равномерный слой и без пузырей. Ко всему попытался снять маску с контактов и переходных после засвечивания с помощью лазера, да припалил половину контактов:-D
            1ваттный лазер, оказывается, может испарять мелкие контактные площадки

          2. Здравствуйте. Паяльную маску я наношу через специальную трафаретную сетку, при помощи ракеля. А засвечиваю через фотошаблон. В общем, всё, как того требует технология. 🙂 Вот здесь можно увидеть мою самодельную сетку (у меня их несколько, разных размеров): Путь от схемы до устройства. Часть 6: паяльная маска и шелкография. К слову, у меня давно уже лежит комплект от наших маленьких китайских друзей, там алюминиевая рама с уже натянутой сеткой, ракель, лоток для краски-маски, шарниры для открывания-закрывания, и вот это всё... Всё руки не доходят попробовать. А вообще планы были новый цикл снять, по изготовлению печатной платы. Более подробный. Может когда и дойдет дело...

          3. Спасибо за подсказку, заказал себе сетку и иные полезности)

  2. Объясните пожалуйста почему , не задействован вывод 0Q? Ведь данные передаются последовательно и запись начнётся в регистр с 0Q. Я правильно понял это Вы сделали для того , чтобы не было путаницы при подключении к UNL 2003 и для удобства разводки печатной платы для тех кто будет повторять. Программированием никогда не занимался и хотелось узнать это Вы учли в программе , чтобы не использовать 0Q. Спасибо.

    1. На самом деле все очень просто, вывод Q0 не используется только потому что он не нужен. Разряд цифры у нас состоит из семи сегментов (точки ведь у него нет), потому и используются выводы Q1-Q7. В коде знакогенератор цифр учитывает этот факт, в регистр-то конечно загружается 8 бит, но просто один бит не используется. А какой он будет, Q0 или какой-либо другой, вообще не имеет значения. Можно было бы подключить Q0-Q6, а Q7 оставить в воздухе, просто для этого нужно было бы переписать коды символов. Почему я выбрал именно Q1-Q7? Именно потому что они идут по порядку, и так удобнее разводить печатную плату, тут Вы всё верно заметили. В этом-то и прелесть написания кода, что можно переназначить выводы по своему желанию именно под удобную разводку. В коде-то куда проще ноги поменять, чем на плате гору перемычек лепить.

      1. Спасибо за ответ , в связи с возрастом (64 года), мне сложновато некоторые вещи в понимании без пояснений, вот и задал Вам такой вопрос, мои друзья по ветеранской хоккейной команде попросили меня сделать цифровое табло для счёта игры на тренировках. В интернете таких разработок очень много , но они имеют слишком обширный функционал, нам нужно элементарно, две цифры на счёт для каждой команды и по три кнопки управления (кнопка нажатием добавить счёт , кнопка убавить счёт если ошибочно добавили и сброс показаний счёта ,на случай если другая команда вступает в игру. Мы играем в Ледовом крытом катке и большое табло вечером не включаю, да и нужен оператор компьютер это для тренировок неудобно. Разрешите за основу взять взять, Ваш проект, а именно схему контролера с тремя цифровыми индикаторами , вместо стрелок добавлю 4 индикатор, Размеры цифр у меня 12 сантиметров. С уважением Анатолий . Спасибо

        1. Вы можете делать с проектом все что угодно, допиливайте как Ваша душа пожелает. 🙂 Если будут возникать вопросы, пишите прямо на почту - public@enabledevice.ru. Я всегда рад поделиться тем, что знаю сам.

          1. Спасибо Вам большое. Да на почту самое то, ведь не всем интересны вопросы которые я хотел узнать. С уважением Анатолий.

  3. Просто классно сделано , как на предприятии с большими возможностями. Фантастика .

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

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