Необычные часы с зеркальным отображением информации.
Интересное высказывание когда то было прочитано мной на просторах интернета — «Если ты не сделал в своей жизни часов, то ты не можешь претендовать на звание электронщика». И действительно, если посмотреть на разнообразие проектов на микроконтроллерах, предназначенных для повторения широкими массами любителей, да и порой профессионалов, можно отметить преобладание всевозможных часов. Это конструкции и на лампах в ретро стиле, и на светодиодных семисегментниках, и на матричных индикаторах. Простые и сложные, точные и не очень, банальные или шедевральные, они неизменно пользуются спросом, потому что часы нужны всем! Их повторяют и школьники, и студенты, и рабочие, а порой и бородатые академики. Причём каждый старается сделать что то своё, хотя современная промышленность, особенно китайского происхождения, предлагает огромный ассортимент довольно интересной продукции. Не обошло это достаточно интересное увлечение и автора этих строк. Вот уже несколько лет у меня есть девиз – делать только то, что невозможно купить! Поэтому часы должны быть как минимум такие, которые не купишь, а как максимум такие, конструкции которых нельзя найти в интернете. Имея такие амбициозные планы, автор приступил к осуществлению задуманного. Итак, что же должны уметь эти часы? Неплохо бы иметь термометр, нужная вещь. Но таких часов полно, идём дальше. А дальше нужен барометр. Это уже интереснее, тем более что появились очень точные малогабаритные и по гуманной цене датчики давления. Маловато будет! Нужно эти параметры – время, температуру и давление как то показывать. Выбор пал на светодиодные индикаторы, красивые и яркие, гармонично вписывающиеся в современный стиль. Хочется отметить, что весь проект, от начала и до конца, моделировался в Протеусе. И вот поэтому наверное удалось реализовать все дальнейшие задумки в достаточно короткий срок.
Во первых, переключение параметров сделано с помощью скроллинга – влево, вправо, вверх, вниз. Это значит, что один параметр уезжает в любую из сторон, а на его место заезжает другой. Честно сказать, я это подсмотрел в одном из роликов на ютубе. Дальше больше – а почему бы на сегментах индикатора не сделать анимацию? Бегущие огни там всякие? И это дело я честно подсмотрел на одной стеле с ценниками автозаправки и автомагнитоле. Правда эффекты там были не такие выразительные и количество их было ограничено. Имея на руках такую информацию, я довольно удачно слепил всё в одно, и начал любоваться собирательным образом. Ну а где же моё – спросите вы, если все идеи давно реализованы до меня? Моё пришло внезапно, в тот момент, когда готовый вариант часов был поставлен на блестящую зеркальную коробку. Вот оно, озарение! Нужно два индикатора, которые будут показывать информацию в зеркальном отражении. Причём усложнять схемотехнику не нужно, нужно просто хитрое параллельное подключение реализовать. Долго не мог определиться – зеркальное отражение должно быть вверху или внизу. Победила дружба! Пусть будет и вверху, и внизу! А переключаться будет случайным образом, иногда заставляя понаблюдать за часами более продолжительное время, чтобы его, это самое время, опознать. Вот такие вот весёленькие часы получились. Есть у них и меню, чтобы лишнее отключать и временем отображения полезной информации и эффектами управлять, которых аж 56 штук. Конечно же лучше один раз увидеть!
Теперь немного о том, как это работает. Сердцем устройства является микроконтроллер ATMEGA328 в DIP корпусе, датчик термометра DS18B20, датчик давления BMP180, часы реального времени DS3231 и семи сегментные светодиодные сборки с общим анодом белого цвета JH5641BW. Микроконтроллер организует взаимодействие между периферией и пользователем. Считывает информацию с датчиков и кнопок и параллельно выводит визуальную информацию и эффекты на индикатор.
Функции работы с периферией неоднократно описаны и интереса не представляют. Более интересны визуальные эффекты, но как их составлять невозможно описать в контексте этой статьи. Питание устройства от стабилизированных 5 вольт. С успехом подойдут всевозможные адаптеры или даже USB порт. Индикаторы могут быть и других цветов, например синие или красные. Только нельзя брать разного цвета. Так как у используемых светодиодов разное падение напряжение, при данном включении светиться будет тот, у которого оно наименьшее. Например, если поставить красный и синий, будет светиться красный. Это нужно учитывать при приобретении индикаторов. Печатная плата односторонняя с использованием перемычек и smd-компонентов, адаптирована для изготовления в домашних условиях с помощью утюга и лазерного принтера. По размерам она немного превышает два индикатора специально для бокового расположения кнопок и датчиков.
После изготовления печатной платы необходимо запаять все перемычки, неактивные элементы – резисторы и конденсаторы. Контроллер необходимо установить на панельке для удобства программирования. В контроллер необходимо залить прошивку и выставить фус-биты (внутренний генератор на 8 МГц и детектор напряжения 4,3 вольта). Индикаторы устанавливаются на четырех коннекторах, приподнимаясь тем самым над контроллером и датчиком давления. Чтобы индикаторы имели с коннекторами лучший контакт, их выводы необходимо залудить.
Я заказывал вот такие индикаторы на Алиэкспресс:
красные — https://goo.gl/yj59qt — качество очень хорошее
Остальные детали:
DS18B20 — https://goo.gl/42OkL3
DS3231 — https://goo.gl/VbnBr8
BMP180 — https://goo.gl/78s40n
Atmega328 — https://goo.gl/mllraZ
В архиве представлена вся необходимая для повторения информация – схема, печатная плата, прошивка, описание пунктов меню и проект Протеуса вместе с моделью датчика давления. Успехов в повторении и пусть и вас посетит озарение.
29.08.2016
Новая прошивка — исправлено отображение давления, исправлен выход из меню. Спасибо всем, кто обнаружил ошибки!
18.12.2016
Наконец то сделал корпус для часов, которые уехали подарком другу — сапожнику.
Дорожите временем, друзья!
Рубашка Василий, 2016.
Добавил видео.
Повторил часы,понравилась идея ,при работе проявилось : индикация P 745 746 747 758 759 750 751 ,может это только у меня?
В смысле плавают показания давления? Как часто? Или что то другое?
Нет,я не говорю что показания P плавают,при изменении P до 747 индикация соответствует ,потом при увеличении до 748 показания 758,749-759,а после опять все приходит в норму 750-750,извините P У нас не силно часто скачет ,но два раза наблюдал это,покаазания часов и термометра отлично.
Посмотрите в Протеусе, как там работает.
Если точно так же, то наверняка ошибка в коде.
Потом буду смотреть, пока занят.
В Протеусе проверить не удалось-зависает,на двух компах с разными системами, но увы …Спасибо что ответили.
PS. Очень хочется посмотреть исходник,если это возможно.
Могу только код обработки датчика давления дать.
И за это огромное спасибо ,хочется разобраться в причине, правда Вы писали что это в декоративных целях,Но хочется чтобы показания соотвеветсвовали +/-1.А может причина в датчике?
Посмотрел — проблема в коде.
Моя вина. Как появится время — исправлю.
Буду ждать,огромное Вам спасибо!
Исправил.
Прошивка в конце статьи.
Огромное Спасибо,проверяю,пока все нормально/двое суток/.После прошивки мк, питание подключил к плате не собирая все в корпус показания были норма ,после сборки все в корпус и подачи питания все заработало нормально,но на индикаторе вместо давления- P002, отключил питание и снова включил-теперь все нормально,может на 1-Ю ножку мк поставить кнопку сброса? Еще раз огромое Спасибо!
У меня предложение сделать без зеркального отображение,а с чередованием вывода одновременно времени,температуры,давление в разной комбинации например время-температура,температура-давление,давление-время с чередованием сменой вывода. Думаю со мной многие согласятся
При существующей схеме это невозможно — индикаторы подключены параллельно.
Ну это так на будущее,может будет интересно для вас. Вариант на одном индикаторе без зеркального отображения возможен?
Может быть на будущее сделаю. Проектов очень много, много пожеланий по их доработке, есть новые. Делаю по мере возможности и желания. Хотите ускорить — поддержите портал. Сейчас на его содержание с таким объёмом информации ой как немало средств идёт.
Вроде спаял..заработало,но как то не очень то понравилось…только что из-за эффектов красота,а так непонятно где вверх и низ без запятой не разобрать. сходу и не поймешь какое там время на часах особенно 2 и 5 в зеркальном отображении.На схеме перепутаны кнопки идущие к 26 и 27 ножкам. Еще после выхода из меню все пляшет и мельчешит пока не отключишь питание.
С меню я проблему уже увидел,исправлю со временем.
А что нельзя понять время — так это так и задумано, чтобы дождаться после часов температуру или давление или бегущую строку, чтобы определить информацию. Это же не для повседневного пользования, а в декоративных целях.
Меню исправил, прошивка в конце статьи.
http://mirvremeni.ru/assets/images/IMG_3956.JPG
Спасибо! Я когда-то давно думал сделать часики и накрыть призмой из такого прибора, есть такая призмочка у меня http://i2.guns.ru/forums/icons/forum_pictures/011974/11974133.jpg попробую, как-нибудь , думаю)
DS3231 — точность составляет желать лучшего. BMP180 — можно конечно использовать и его, но я разрабатывал по нарастающей — сначала появился DS18B20, а уже затем и датчик давления.
А зачем DS18B20?
BMP180 и DS3231 меряют температуру. Да и сам МК тоже. В DS3132 регистр $11 — прямо готовая температура.