Часы, будильник, термометр на ATmega8, DS1307, DS18B20
Более четырех лет назад я собрал простые часы на ATmega8. Все это время они исправно работали и приносили пользу, особенно в темнее время суток. Но мне показалось, что такой микроконтроллер, как ATmega8 может делать намного больше, чем просто подсчитывать колебания кварца и выводить их в виде времени.
Захотел, чтобы новые часы информировали не только о текущем времени, но и о температуре в помещении, где они находятся. Задался поиском подобных схем в интернете, отталкиваясь от уже имеющихся комплектующих, а именно: микроконтроллер ATmega8 и светодиодный индикатор с общим катодом. Отличное решение нашлось на странице, которое предоставил пользователь Soir, за что ему большая благодарность.
Схема часов не сложная, плюс, я сделал в ней некоторые упрощения. Что получилось, я привожу ниже. Оригинальная и упрощенная схема, разведенная в Proteus, имеется в АРХИВЕ. В данном архиве приведены также прошивки ATmega8, дающие разный функционал часам, пример выставления фьюзов, полная инструкция по настройке часов и их возможностях, а так же разведенная печатная плата в формате *.lay6. Печатная плата разводилась мной под уже имеющийся корпус. В архиве представлены прошивки для индикаторов с общим анодом и катодом.
Хочу признать, что часы получились отлично. В часах есть будильник (как разовый, так и по дням недели), термометр. Для регулировки освещения индикатора в дневное и ночное время, могут использоваться как предустановки в часах, так и специальный датчик (фоторезистор). Есть возможность коррекции времени, если оно отстает или спешит; цифровая коррекция отображения температуры с градацией 0,1ºС.
Большим плюсом является наличие сохранения настроек в энергонезависимой памяти микроконтроллера. Помимо этого, применение микросхемы DS1307, в паре, с батарейкой, делают часы абсолютно энергонезависимыми. Батарейка выполняет дежурное питание часов. Теперь, сколько бы поставка электричества у Вас не обрывалась, при ее возобновлении, часы буду идти, без каких-либо изменений и отклонений, даже останется заведенным будильник(и).
В эстетическом плане, данные часы, также хороши. Есть более десяти видов визуальных эффектов смены отображения времени и температуры. Кстати, эти эффекты можно выбирать самостоятельно или выставить их отображение в случайном порядке.
Пользователь "yurich" предоставил свой вариант разводки платы под корпус советских часов "Кварц". Файл можно скачать ЗДЕСЬ.
iwanowich, по какой схеме Вы собирали? Я не вижу на плате транзисторных ключей.
Вот,без ключей работают.
Ключи поставил,для того чтоб в будущем прилепить большой индикатор.
На второй странице форума видно,как плата разведена под ключи.
iwanowich, еще раз говорю. Пришлите схему (не плату), по которой Вы собирали часы.
По этой схеме которая здесь выложена,только добавил ключи.
iwanowich, нарисуйте как Вы их подключали. Видимо, именно здесь и кроется загвоздка.
iwanowich, для начала sh5461as - малогабаритный индикатор, которому ключи не нужны. Подключение верное. Ищите ошибку в разводке печатной платы. Попробуйте заменить резисторы базы на 4,7k.
Так может по этому и такая фигня происходит,что индикатор жрет мало и через ключи идет за свет индикатора и сбой контроллера,а на прямую всё работает.Может когда подключу большой,этого не будет происходить?

Вот подключил первый на базу,даже через резистор идет за свет.
Отпаял транзистор,но резистор базовый не убирал,за свет пропал,но при подачи питания,должно высветится Soir.На букве S,пропал сегмент H.Соответственно,когда горит 2 его тоже нет.
iwanowich, может, транзистор не успевает закрываться. Попробуйте базу соединить с эмиттером через резистор 10k.
Попробую отпишусь.
Попробовал соединить базу через 10кОм,не чего не дало,опять завис контроллер и за свет.
А на 23 ногу надо что цеплять,в протеусе фото резистор.
iwanowich, уже все варианты исключили. Ради оценки ситуации, отпаяете эти резисторы с эмиттера и подпаяйте к 5ти вольтам. Край, который был припаян к базе, пусть останется. Как сейчас ведут себя часы?
Если Вы фоторезистор не планируете использовать, то 23й пин не задействован.
Я попробовал в протеусе собрать,тут по другому себя ведут.Но зависает точно так же.Припаял 10кОм,с базы на 5 вольт.На первом разряде загорелась восьмёрка и всё зависло.
В общем решил так,как соберу индикатор большой тогда продолжу эксперименты.С маленьким не чего не получается,я уже и полевики пробовал ставил,кп501а,такая же басня и цеплял резисторы,между стоком и истоком 1мОм,всё ровно зависает.Почему так происходит я не могу понять.
А вы можете проверить их впртеусе,добавив ключи?
iwanowich, если найду свободное время, проверю.
Хорошо я подожду.
iwanowich, у меня в Протеусе получилось запустить так. Пробуйте.

Попробовал я в железе,по вашему протеусу,вообще индикатор потух.
Один раз вот так показывает,другой раз вот так.А в железе вообще не чего не показывает.
iwanowich, развел все катоды с ключами. Всё работает. Может Вы прошивку от индикатора с общим анодом используете?

Индикатор в железе собран общий катод.Я же не в протеусе делаю,а на плате,хотя глючит и там и там.Непонятно что виновато,главное без ключей всё работает и в железе и здесь.Вы мне скиньте свой протеус и прошивку,я её попробую.
iwanowich, попробуйте эту комбинацию:
А фьюзы у меня правильно выставленные?

Залил я вашу скаченную прошивку в железо,как не показывал не чего,так и не показывает и попробовал в протеусе,загорелось Soir,потом перешёл на время,начала моргать точка,потом она перестала моргать,а время,так и осталось висеть.
А баз ключей в железе пашет.
iwanowich, если без ключей работает, то фьюзы при работе с ключами никакого отношения не имеют.
Тогда я не знаю почему так происходит.Как соберу большой индикатор,так тогда и проверю.

Хотел вот такой добавить к этим часам,а без ключей делов не будет.
iwanowich, там, где брали эту плату, посмотрите какие ключи используются и как они подключаются.
Эту плату я развёл сам.