Схем и конструкций термометров в сети огромное количество, на любой вкус и цвет. Казалось бы, выбирай и делай. Но с другой стороны, именно этот факт и стимулирует (по крайней мере меня) придумывать что-то интересное, не похожее на остальное. Так случилось и в этот раз, когда мне понадобилось собрать уличный термометр с большими цифрами.
Краткие характеристики:
Диапазон измеряемой температуры | -55°C - +125°C |
Период опроса датчика | 10 секунд |
Напряжение питания | DC 6-40В |
На самом деле проблемы-то нет никакой, большие семисегментные индикаторы существуют, но в данный момент у меня таких нет. Заказывать и ждать нужно время, да и обыденно это все. Индикаторов нет, но есть куча SMD светодиодов, лист ПВХ пластика и ЧПУ станок. Попробуем из этого набора соорудить что-нибудь интересное.
Схема особенностей не имеет, микроконтроллер ATmega8A в корпусе TQFP, датчик DS18B20, индикация статическая на сдвиговых регистрах 74HC595 усиленных сборками Дарлингтона ULN2003. Питание на ШИМ-регуляторе LM2596. Применение отдельных светодиодов позволило создать собственные символы (стрелки изменения температуры).
Плата двухсторонняя.
Изготовить плату это половина дела, устройству обязательно нужен корпус. Который я решил сделать из ПВХ пластика толщиной 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), сборочный чертеж, прошивка, исходный код.
Здравствуйте. Планирую повторить Вашу схему, но процессор применить в корпусе DIP. Их отличия только в нумерации выводов? Не силен в программировании, поэтому прошу выложить скриншот с фьюзами в программе code vision AVR
Здравствуйте, Родион. Да, в данном случае, разница только в нумерации пинов. По фьюзам написал Вам на почту. P.S. Письмо отфутболили, по причине несуществующего адреса. Свяжитесь со мной через форму обратной связи (О САЙТЕ), если Вам потребуется помощь.
Здравствуйте! Всем понравился Ваш термометр и среди прочего размером цифр. Давно хочу такой поиметь, чтобы показания было видно издалека (возраст, зрение не очень) Собрать такой мне будет сложновато, но вот какая идея пришла. Есть на Али дешевенькие цифровые термометры на 7-сегментных индикаторах. Типа вот такого - https://aliexpress.ru/item/1005006124867115.html?sku_id=12000035864607723&spm=a2g2w.productlist.search_results.16.6c1a4aa6BTN8OX
Стоимостью всего пару сотен руб. А что если купить 7-сегментные индикаторы бОльшего размера (1,8 дюйма или 2,5 дюйма), прежние индикаторы убрать и подключить новые, большие? Реальна ли такая задумка? Или возникнут непреодолимые трудности, как Вы считаете?
Здравствуйте, Владимир. В первом приближении затея не является неосуществимой, но трудности конечно могут быть. Многое зависит от реализации термометра, от нагрузочной способности выводов, управляющих индикатором, и тому подобное. Так же стоит иметь ввиду, что у больших семисегментников в каждом сегменте как правило располагается несколько светодиодов, соединенных последовательно. И такие индикаторы так просто уже не подключить. В общем, тут только пробовать, экспериментировать, и вот это всё. 🙂 Есть у меня другая идея, касающаяся большого термометра. Подробнее напишу на почту...
Здравствуйте. Интересный проект. Решил повторить и заодно освоить недавно приобретенный чпу3018. Не могли бы вы выложить модель корпуса в stl? Думаю его напечатать, а затем покрасить)
Не знаю, посчитаете ли вы эту просьбу наглостью, но очень бы хотелось заиметь ваши библиотеки для диптрейса)
Здравствуйте. Увы, с проектом корпуса случилась весьма скверная история: создавался он в среде Fusion 360, а сие поделие использует облачное хранилище. Ну и в один не очень приятный момент, файлы этого проекта стали просто недоступны. А выгрузить модели я не успел, как это обычно бывает. Так что теперь только заново корпус создавать. Но сейчас я такой термометр сделал бы на адресных светодиодах, что гораздо проще в плане схемотехники и разводки печатной платы. Ну и возможности в плане визуализации шире. На тот момент просто захотелось сделать именно статическую индикацию. А корпус попробовал бы напечатать на 3D принтере. Надо вообще попробовать на тестовых образцах, как оно получится... Библиотеки чуть позднее на почту отправлю.
Адресные дороговато для простого термометра.
А здесь элементная база очень доступна и дешева, если приобретать ее у восточных партнеров)
Ну в принципе, 100 штук WS2812B можно купить у наших маленьких китайских друзей за 230 рублей, что вполне себе доступно. Плюсом, можно свистоперделки реализовать, типа изменения цвета, в зависимости от температуры. Но это уже такое себе, конечно. Дело личных предпочтений. 🙂
Здравствуйте еще раз) Как вы на такой большой плате сделали красивую и равномерную маску? Я ковырялся-ковырялся, да потом просто кисточкой ее размазал, так как не получалось сделать хоть сколько-нибудь равномерный слой и без пузырей. Ко всему попытался снять маску с контактов и переходных после засвечивания с помощью лазера, да припалил половину контактов:-D
1ваттный лазер, оказывается, может испарять мелкие контактные площадки
Здравствуйте. Паяльную маску я наношу через специальную трафаретную сетку, при помощи ракеля. А засвечиваю через фотошаблон. В общем, всё, как того требует технология. 🙂 Вот здесь можно увидеть мою самодельную сетку (у меня их несколько, разных размеров): Путь от схемы до устройства. Часть 6: паяльная маска и шелкография. К слову, у меня давно уже лежит комплект от наших маленьких китайских друзей, там алюминиевая рама с уже натянутой сеткой, ракель, лоток для краски-маски, шарниры для открывания-закрывания, и вот это всё... Всё руки не доходят попробовать. А вообще планы были новый цикл снять, по изготовлению печатной платы. Более подробный. Может когда и дойдет дело...
Спасибо за подсказку, заказал себе сетку и иные полезности)
Объясните пожалуйста почему , не задействован вывод 0Q? Ведь данные передаются последовательно и запись начнётся в регистр с 0Q. Я правильно понял это Вы сделали для того , чтобы не было путаницы при подключении к UNL 2003 и для удобства разводки печатной платы для тех кто будет повторять. Программированием никогда не занимался и хотелось узнать это Вы учли в программе , чтобы не использовать 0Q. Спасибо.
На самом деле все очень просто, вывод Q0 не используется только потому что он не нужен. Разряд цифры у нас состоит из семи сегментов (точки ведь у него нет), потому и используются выводы Q1-Q7. В коде знакогенератор цифр учитывает этот факт, в регистр-то конечно загружается 8 бит, но просто один бит не используется. А какой он будет, Q0 или какой-либо другой, вообще не имеет значения. Можно было бы подключить Q0-Q6, а Q7 оставить в воздухе, просто для этого нужно было бы переписать коды символов. Почему я выбрал именно Q1-Q7? Именно потому что они идут по порядку, и так удобнее разводить печатную плату, тут Вы всё верно заметили. В этом-то и прелесть написания кода, что можно переназначить выводы по своему желанию именно под удобную разводку. В коде-то куда проще ноги поменять, чем на плате гору перемычек лепить.
Спасибо за ответ , в связи с возрастом (64 года), мне сложновато некоторые вещи в понимании без пояснений, вот и задал Вам такой вопрос, мои друзья по ветеранской хоккейной команде попросили меня сделать цифровое табло для счёта игры на тренировках. В интернете таких разработок очень много , но они имеют слишком обширный функционал, нам нужно элементарно, две цифры на счёт для каждой команды и по три кнопки управления (кнопка нажатием добавить счёт , кнопка убавить счёт если ошибочно добавили и сброс показаний счёта ,на случай если другая команда вступает в игру. Мы играем в Ледовом крытом катке и большое табло вечером не включаю, да и нужен оператор компьютер это для тренировок неудобно. Разрешите за основу взять взять, Ваш проект, а именно схему контролера с тремя цифровыми индикаторами , вместо стрелок добавлю 4 индикатор, Размеры цифр у меня 12 сантиметров. С уважением Анатолий . Спасибо
Вы можете делать с проектом все что угодно, допиливайте как Ваша душа пожелает. 🙂 Если будут возникать вопросы, пишите прямо на почту - public@enabledevice.ru. Я всегда рад поделиться тем, что знаю сам.
Спасибо Вам большое. Да на почту самое то, ведь не всем интересны вопросы которые я хотел узнать. С уважением Анатолий.
Просто классно сделано , как на предприятии с большими возможностями. Фантастика .
Спасибо, Анатолий. 🙂