Как стать автором
Обновить

Комментарии 78

Супер! Хорошая, аккуратная плата!
В Attiny84 есть встроенный термодатчик, пару деталей можно было выкинуть.
Точняк, выкинуть внешний термодатчик и на освободившийся вывод посадить третий разряд индикатора!
Нет. Но третий разряд всё равно можно — в тиньках RST же совмещён с GPIO, т.е. вообще-то есть ещё одна нога неиспользуемая.
Typically, the measurement accuracy after a single temperature calibration is ±10°C,assuming calibration at room temperature. Better accuracies are achieved by using two temperature points for calibration


Встроенные в процессоры датчики, за редким исключением, дрянь.
Датчик точный, шкала не откалибрована. Калибруйте по двум точкам и будет все хорошо. Так с любыми измерительными приборами, нормальная практика, а то как в магазине будет, из пяти термометров четыре разное показывают.
Именно! Требуется индивидуальная калибровка каждого экземпляра. Мы как-то использовали встроенные датчики, но МК был другой — PIC18F66K40. Хотя внутри датчик там такой же, и калибровка его аналогичная. Но для упрощения калибровали по одной точке. В серии получили разброс порядка 5 C. Для того проекта за глаза хватало, но, если есть возможность, лучше всё таки использовать внешние датчики. Есть недорогой вариант — LM75. Стоит дешевле DS128B20, опрашивается по шине I2C. Очень простой датчик.
Ну чем лучше то? Дополнительный корпус, дополнительная обвязка, под это надо разводить дополнительно плату, потом дополнительно монтировать и все это будет дополнительно кушать батарейку.
Для поточного производства калибровка каждого устройство конечно накладывает возможно даже большие затраты. Но дома для DIY, померить в комнате, сравнить с градусником, померить в холодильнике, сравнить, вычислить коэффициенты, залить прошивку и готово, делов минут на пять.
Там корпус SOIC-8. Обвязка 1 резистор на SDA (на SCL необязательно, т.к. тут всего одна простая микросхема) и одна керамика на 0.1 мкФ по питанию. Там и опять же тут от разводки зависит. Если датчик ближе к процу поставить, то хватит одного кондёра на двоих. Зато вообще калибровать не надо. Стоимость датчика даже в Чип и Дипе 50 руб. всего.
Есть ещё аналоговые датчики типа MCP9700A. Корпус SOT-23. Нужна всего одна линия МК, но аналоговая. Зато из обвязки только кондёр по питанию!
Ну, у DS18B20 погрешность 0,5 градуса. Если калибровать что-то по градуснику из тех, которые обычно бывают под рукой (типичная погрешность, ЕМНИП, около 1 градуса), результат в любом случае будет хуже. Особенно если честно учесть всякие там погрешности снятия измерений с этого градусника.
Даже не трогая удобства калибровки по двум точкам каждого устройства, хорошо там всё равно не будет. В полном диапазоне уличных температур я бы сильно лучше чем ±5 °С по краям диапазона особо не ожидал бы.

Если стоит задача сэкономить — полно аналоговых датчиков, обеспечивающих точность масштаба ±1° без дополнительной калибровки. STLM20 там какой-нибудь. 

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

Если же нужна лишняя ножка — она тут и так есть.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Только одного меня смущает

Да ;)
Это киллер-фича. Нигде больше такого нет. Круче — разве только отображать температуру двоичным кодом на светодиодах. А чтобы не заморачиваться с отображением отрицательных температур — использовать шкалу Фаренгейта.
Простите, но ЖК не работает при отрицательных температурах. Он же за окном. Другое дело что и батарейка тоже не очень работает при -30.

Прекрасно работает. Уже который год за окном висит китайский термометр, который представляет собой ЖК дисплей размером 7х7 см.
Да, при ниже -20 скорость прорисовки замедляется (это видно) и символы становятся не темно-серыми, а светло-серыми, но показания по прежнему считываются с нескольких метров.

Есть, конечно, что и при -40 по паспорту работают, в термометр вероятно поставили что-то подобное. А есть у которых от 0 градусов диапазон (например 1602), хотя, вероятно, тоже что-то покажут. Но для «за окном» за этим надо следить, плюс еще и подсветку организовывать… Так что вряд ли альтернатива в виде дешевого ЖК предпочтительнее дешевого светодиодного, с учетом всего.
Не понял как отображается отрицательная температура.
И я бы (себе) добавил десятые градуса…
Сектором g минус рисуется

Поэтому и -19 минимум
Ага, в Англии при таких морозах жизнь полностью остановится.
Мне кажется, что в указании знака температуры ниже -9 и выше +9 не нуждаются.
Пайка аккуратная, феном паялось? Осталось только места пайки лаком покрыть.

А почему у вас переходные отверстия не под маской?

Не хватает только фотографии «на боевом посту».
Такой достаточно плотный монтаж SMD компонентов почти невозможно паяльником паять, извратиться конечно можно, но феном это горааздо легче паяется.
Это совсем не плотный монтаж, и паяльником такое паяется без проблем вообще. Единственное место где _может_показаться_ не очень удобным — это сначала запаять С1, а потом DS. И то, места там предостаточно чтобы подлезть. Но конечно лучше сначала запаять DS и потом С1.
SMD паяльником очень просто паяется, если припой не левый какой-нибудь и температура жала правильная. Облуженным жалом провести по выводам микросхемы — и все. Выпаивать — да, тоскливо…
Паялось феном Youyue 858D+. Но это перевод, так что остальные вопросы останутся без ответа.
Подскажите, индикация раз в 24 секунды, а отображение как реализовано? Постоянно горит?
Нет:
Основная программа отображает температуру в течение десятых долей секунды, затем включает спящий режим. Оказалось, что это минимальная продолжительность индикации, удобная для считывания. За две секунды до отображения температуры кратковременно мигает точка
Ну так вот, как часто включается отображение?
раз в 24 секунды? (3х8 сек. — столько спит микроконтроллер)
Вот именно поэтому я и задался таким вопросом. Насколько это комфортно. в такой большой промежуток времени отображение моргнуть разочек.
Мне было бы некомфортно и 10 секунд. Может быть, причина в том, что это — подарок 2-х летнему ребенку, который все внимательно рассматривает и никуда не торопится?
Двухлетний ребёнок закатит эпический скандал, как только поймёт, что лампочки сами гаснут до того, как он успел их рассмотреть, и долго не зажигаются.
В какой программе плату делали? Было бы интересно почитать поподробнее о том как делали, заказывали.
очень рекомедую Kicad и Jlcpcb
У DS18B20 минимальное напряжение питания — 3в. Т.е. год оно никак не проработает. Нужно ставить что-то вроде TMP112 в качестве температурного датчика.
Реализация отличная, очень понравилась идея с таймером засыпания, но! Как быть с минусовыми температурами? Может, стоило бы взять 4-х-символьный дисплей и отображать минус и десятичную часть? Или, как вариант, поставить какой-нибудь SMD-светодиод (синий, например), который бы включался и индицировал, что показания следует читать как «такая-то температура, но ниже нуля». И как Вы калибровали датчик? или он сам по себе достаточно точный?
Особого смысла в третьем индикаторе нет — это уличный датчик, поэтому даже в условиях российского климата ты всегда знаешь: выше +19 или ниже -19 температура за окном. А знак в диапазоне до -19 эта штука показывает.
А батарею дополнительный знак отжирать будет.

Тут больше другое неудобство — приходится ждать 24 сек чтобы узнать температуру.
Я бы на заднюю поверхность корпуса налепил солнечную панель для уменьшения времени «неотображения данных» при сохранении того же времени работы, но, думаю, при таких габаритах от нее толку не будет.
И опять один резистор на все сегменты, оно ж светит не равномерно из-за этого при отображении разных цифр.
Из-за того, что одно и то же значение тока подается на разное количество сегментов?
Давно уже пофиг — при динамической индикации единовременно светится всегда только один сегмент (ячейка индикатора), т.е. дополнительные резисторы лишние.
НЛО прилетело и опубликовало эту надпись здесь
Выгода не в стоимости резисторов, а длительности работы от батареи.
При максимальном заполнении индикатора (28 градусов) при классической индикации потребление составляет 12 х 7 мА = 84 мА, а при динамической индикации потребление составляет 2 х 7 мА = 14 мА, т.е. в 6 раз меньше.
в 6 раз меньше


Голос из толпы: «А что с яркостью то?»

Если позволяет батарея — увеличить ток до +20% от номинала индикатора (сегмент все равно 1/7 времени всегда выключен), остальное зависит от программиста.

остальное зависит от программиста


Меньше ток через светодиод — меньше яркость. Хочется больше яркости — нужно больше миллиампер. Что программист может противопоставить закону сохранения энергии?
Даже при идеальной схемотехнике яркость можно программно запороть неудачным сочетанием длительностей свечения-несвечения.
НЛО прилетело и опубликовало эту надпись здесь
Софт всегда можно оптимизировать, это бесплатно, в отличие от железа.
В части разводки платы я б тоже внес изменения, чтобы сделать еще компактнее.
НЛО прилетело и опубликовало эту надпись здесь
Ну то есть как обычно с проектами с хакадея — все отлично, только софт и железо надо переделать.
то еще говно этот проект


Совершенно лишнее было ковырять так глубоко ;). На этапе постановки задачи (уменьшать потребление энергожрущего индикатора путем периодического выключения) — уже понятно, что ничего хорошего не может получиться.
НЛО прилетело и опубликовало эту надпись здесь

Термометр с датчиком движения… ъУъ… Challenge! :)

По моему вы ошибаетесь, посмотрите еще раз на функцию DisplayNextDigit ().
Там автор как раз берет значение цифры и выводит на порт, а потом уже включает общий катод ( PORTB = PORTB & ~(1<<digit);).
То есть динамическая индикация в данном примере работает именно так, как и реализовано в большинстве часов: на короткий момент зажигается первая цифра индикатора, затем вторая (потом процесс повторяется). Но из-за медлительности нашего зрения мы это не замечаем. То есть перебирают общие выводы, а не сегменты.
Теперь касательно того, почему не стоит экономить 7 резисторов. Как известно, светодиод прибор токовый, то есть его яркость зависит от тока пропускаемого через него. А вот падение напряжения на каждом конкретном диоде хоть и принимается ~1.8 вольта (для красных светодиодов), в реальности отличается от экземпляра к экземпляру. А так-как эта характеристика нелинейная, то сегменты получаются неравномерно засвеченными, если использовать общий резистор.
Более того, если бы не батарейное питание, то для того что бы при динамической индикации цифры не казались тусклыми, ток обычно даже увеличивают (для чего в ДШ на индикатор даже есть параметр Ipeak).
Хм, поциферная динамическая индикация это идея. Надо будет как-нибудь поиграться.
Конечно, в этом случае не стоит пренебрегать резисторами.
Честно говоря, 7 сегментный индикаторы это вообще еще та забава. Я долго воевал с динамической индикацией, что бы было четко и якро.
LED индикатор в малопотребляющее устройство? Юксюморон же. Почему не взять LCD или EINK?
Наверное дело в цене
Нуу… Когда это самодельщика останавливала цена комплектующих?
Если вопрос цены важен — готовый спиртовой термометр по всем параметрам лучше.
1. Практически вечный.
2. Показывает температуру постоянно.
3. Экологически чистый. Если его, например, сдуру сожрет собака — ей это ничем не грозит (литиевая пуговица внутрь — это очень опасно. Детей к устройствам с литиевыми батареями подпускать нельзя!).

Или если нужно с цифрами:
image

$8. Уверен, что самоделка из статьи обошлась не дешевле.

Ну, если я не ошибаюсь самый простенький e-lnk обойдется в 1000 рублей. К сожалению не дешево. И если я не ошибаюсь, то такая цена обусловлена патентом на такой тип экранов.
А вот другой момент — как я понял термометр будет располагаться на улице. Интересно как долго на самом деле он там проживет, если учесть что у нас бывают существенные минусовые температуры

LCD дешевле, например.

термометр будет располагаться на улице.


Тем более нет смысла в подобном изделии. На улице датчик, индикатор где удобно. Упсь, опять получается метестанция.
Зачем e-ink? Обычный ЖК стоит копейки и отлично работает на морозе. Правда, переключаться будет медленно-медленно, но в таком устройстве это не критично.
Видно издалека.
И хоть я и фанат E-ink, но само свечение LED-индикаторов мне приятнее.
Кажется к таким устройствам хорошо подходит ИК-сенсор приближения: чтобы отображение температуры включалось, когда к нему подходят. Кажется, есть даже датчики, которые сами генерируют сигнал ИК-светодиода и подают на ногу питание, если фотодиод поймает нужную последовательность, то есть даже микроконтроллер для этого задействовать не нужно.
А ИК-сенсор не кушает ли? Это ж придётся всё время его держать включённым.
Конечно, сколько-нибудь должен съесть. Но, я бы в таком случае какой-нибудь Li-Ion аккумулятор поставил был (есть куча типоразмеров цилиндрических элементов, которые легко заряжать), либо хорошую 9-вольтовую батарейку, если о морозах думать.
Для морозов ставят либо пару LiFeS2, либо одну LiSOCl2.

И не столько ради формальной морозостойкости самой по себе (CR2032 тоже бывают от -30 °С), сколько ради сочетания морозостойкости и нагрузочной способности — для CR2032 и при комнатной 10 мА уже предельный ток разряда, они вообще на < 1 мА рассчитаны.
Можно поступить проще, в устройство поставить геркон, внутри дома на окно повесить неодимовый магнит (главное поместить его в большой корпус).
Хочет ребенок увидеть температуру — подносит этот самый магнит к устройству.
Бздынь! И окна нет. Дети — они такие…
Этот двухразрядный светодиодный термометр автор изготовил в качестве подарка на день рождения сыну друга. Ему всего два года, и цифры он уже читает, а буквы — нет. Теперь он может узнавать температуру за окном самостоятельно. Датчиком в термометре служит микросхема DS18B20, работающая по протоколу 1-Wire, а микроконтроллер применён типа ATtiny84. Плата — квадратная со стороной в 25 мм,

Не хочу показаться ''яжматерью'' но помоему размеры подарка позволяют маленькому ребёнку если не проглотить его, то уж точно пожевать…
Ну а на счёт самого устройства, то интересное, имеет право на жизнь, но лучше подальше от маленьких детей.
Не хочу показаться ''яжматерью'' но помоему размеры подарка позволяют маленькому ребёнку если не проглотить его, то уж точно пожевать…


Если ребёнок окажется по ту сторону окна (устройство ведь будет за окном), то размеры Вас будут волновать в последнюю очередь.

Подарок, который нельзя потрогать — это издевательство над ребёнком.

И который выключается на полминуты, как только ребёнок начал его разглядывать (двухлетние дети читают цифры… не очень быстро и не очень уверенно).
НЛО прилетело и опубликовало эту надпись здесь
Ардуино и его адепты в действии!
Здесь все-таки не тот случай. Истинные «джедаи Ардуино» не работают напрямую с регистрами, а используют так полюбившиеся им digitalRead() и digitalWrite() и их нисколько не смущает несколько десятков тактов на вывод одного бита.

Можно подумать, наличие digitalRead() в этом проекте чего-то непоправимо испортило бы

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории