Часы — Библиотека устройств на микроконтроллерах http://elektro-shemi.ru Сайт тем кому не лень паять Wed, 17 Sep 2014 12:24:39 +0000 ru-RU hourly 1 https://wordpress.org/?v=4.9.22 необычные часы http://elektro-shemi.ru/neobychnye_chasy.html http://elektro-shemi.ru/neobychnye_chasy.html#comments Mon, 13 Feb 2012 20:00:00 +0000 http://www.elektro-shemi.ru/neobychnye_chasy.html
Чтоб узнать сколько время надо помахать рукой 🙂 Вот такие часы. Схема собрана на популярном микроконтроллере PIC16F84. Питание осуществляется от источника 3В.

Скачать исходник .asm и .hex
Скачать печатку

]]>
http://elektro-shemi.ru/neobychnye_chasy.html/feed 6
Часы с термометром http://elektro-shemi.ru/chasy_s_termometrom.html http://elektro-shemi.ru/chasy_s_termometrom.html#comments Sat, 11 Feb 2012 20:00:00 +0000 http://www.elektro-shemi.ru/chasy_s_termometrom.html Часы с термометром для автомобиля

Устройство собрано в корпусе штатных часов автомобилей ВАЗ 2104-2107. Вверху отображается текущее время, внизу температура.

Внешний вид часов показан на фото:

Под этот корпус и заточены две платы: плата индикации — односторонняя (используются два четырехразрядных индикатора с общим анодом).
Плата контроллера и питания — двухсторонняя. Обе платы соединены межплатными перемыками.
Транзисторы BC337 или любые аналогичные, на ток не менее 100 мА.

Для понижения питающего напряжения до 5 вольт используется по одному проволочному гасящему резистору, соответствующей мощности (сопротивление подбирается экспериментально), на каждый из каналов. Их ориентировочное сопротивление: 75 Ом на индикацию и 200 Ом на питание контроллера. Причем индикация питается через замок зажигания, а сам контроллер постоянно подключен к аккумуляторной батарее, т.к. он должен постоянно находится под напряжением.

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

Схема часов приведена на рисунке:

часами крайне просто: кнопкой S1 выбираются минуты или часы (выбранные разряды будут мигать), а кнопками S2 и S3 устанавливается текущее время. После того, как значение разрядов часов будет установлено, нажатием кнопки S1 переходят в рабочий режим. В этом режиме ни один из разрядов не мигает.

Скачать печатную плату и прошивку

Скачать печатку по другие индикаторы

Авторы конструкции: Алексей Черепанов и Винниченко Артур

Связаться с авторами можно по email  vsnnichenko_a@list.ru

                                                            dark184@yandex.ru

]]>
http://elektro-shemi.ru/chasy_s_termometrom.html/feed 3
Часы — будильник http://elektro-shemi.ru/chasy_budilnik.html http://elektro-shemi.ru/chasy_budilnik.html#comments Tue, 07 Feb 2012 20:00:00 +0000 http://www.elektro-shemi.ru/chasy_budilnik.html При использовании маломощного сверхяркого индикатора (такого как CA04-41SRWA) и обычных пальчиковых или мизинчиковых батареек (ещё лучше, но дороже поставить аккумуляторы) необходимости отключать индикатор во время отсутствия сетевого напряжения нет.

Схема такого варианта питания удобна, если применён блок питания, выполненный в виде зарядного для мобильного телефона со стабилизированным выходным напряжением 5 вольт.
В этом случае можно использовать любую из прошивок для часов с питанием от батареек (clock_4c).

Рис 1. Схема часов без контроля внешнего напряжения питания(clock_4c_02a)

В том случае, если используется индикатор с большим потреблением, или миниатюрные батарейки с малым ресурсом, лучше использовать схему с контролем напряжения питания. В этой схеме контроллер проверяет наличие напряжение на входе RA5 (4-й вывод микросхемы).
При отсутствии напряжения обесточиваются индикаторы, цепь звука и игнорируется нажатие на кнопки, а сам контроллер продолжает отсчитывать время.
Кроме того анодные цепи индикатора дополнительно усилены транзисторами, чтобы не перегрузить порты микроконтроллера. Резисторы в цепях катодов индикатора устанавливаются с таким расчётом, чтобы максимальный ток на одном сегменте не превышал 25 мА.

Рис 2. Схема часов с контролем внешнего напряжения питания(clock_4c_02b)

Диоды в схеме нужно применить шотки 1N5817,либо 1N5818 или 1N5819 и резисторы в базах всех транзисторов заменить на 2.2Ком

Транзисторы в анодах индикатора bc337-40,в цепи будильника один A1015 второй c1815.Резитор указаный в схеме стрелкой ставить обязательно,у автора его нет,но без него некорректно работает контроль питания.Дисплей применяем с общим анодом CA56-21SRWA,EWA,GWA либо CA56-12SRWA,EWA,GWA,в зависимости какой цвет хотим,прошивки прилагаю под оба вариантов дисплеев.

Скачать прошивки под дисплей CA56-21SRWA, CA56-12SRWA…

Скачать прошивку, сделана индикация дней недели цифрами,и еще много улучшений,она под дисплей с двумя разделительными точками CA56-21SRWA

Скачать печатку

фото от пользователя bidavova  Часы в корпуссе с автомобиля ваз2104

печатка под этот корпус — скачать

]]>
http://elektro-shemi.ru/chasy_budilnik.html/feed 1
Многофункциональные наручные LED часы http://elektro-shemi.ru/mnogofunkcionalnye_naruchnye_led_chasy.html http://elektro-shemi.ru/mnogofunkcionalnye_naruchnye_led_chasy.html#comments Wed, 25 Jan 2012 20:00:00 +0000 http://www.elektro-shemi.ru/mnogofunkcionalnye_naruchnye_led_chasy.html

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

1. Часы — календарь:

  • Отсчёт и вывод на индикатор часов, минут, секунд, дня недели, числа, месяца, года.

  • Наличие автоматической корректировки текущего времени, которая производится каждый час (максимальные значения +/-9999 ед., 1 ед. = 3,90625 мс.)

  • Вычисление дня недели по дате (для текущего столетия)

  • Автоматический переход на летнее и зимнее время (отключаемый)

  • Учитываются високосные годы

2. Два независимых будильника (при срабатывании звучит мелодия)
3. Таймер с дискретностью 1 сек. (Максимальное время отсчета 99ч 59м 59с)
4. Двухканальный секундомер с дискретностью счета 0,01 сек. (максимальное время счета 99ч 59м 59с)
5. Секундомер с дискретностью счета 1 сек. (максимальное время счета 99 суток)
6. Термометр в диапазоне от -5°С. до 55°С (ограничен температурным диапазоном нормальной работы устройства) с шагом 0,1°С.
7. Считыватель и эмулятор электронных ключей — таблеток типа DS1990 по протоколу Dallas 1-Wire (память на 50 штук, в которой уже имеется несколько универсальных ”ключей-вездеходов”) с возможностью побайтного просмотра кода ключа.
8. Дистанционный пульт управления на ИК лучах (реализована только команда «Сделать снимок») для цифровых фотокамер «Pentax», «Nikon», «Canon»
9. Светодиодный фонарик
10. 7 мелодий
11. Звуковой сигнал в начале каждого часа (отключаемый)
12. Звуковое подтверждение нажатия кнопок (отключаемое)
13. Контроль напряжения батареи питания с функцией калибровки
14. Цифровая регулировка яркости индикатора

Может такая функциональность и избыточна, но мне нравятся универсальные вещи, ну и плюс моральное удовлетворение от того, что данные часы будут сделаны своими руками.

Принципиальная схема часов

Устройство построено на микроконтроллере АТmega168PA-AU. Часы тикают по таймеру Т2, работающему в асинхронном режиме от часового кварца на 32768 Гц. Микроконтроллер почти всё время находится в спящем режиме (индикатор при этом выключен), просыпаясь раз в секунду, чтобы добавить эту самую секунду к текущему времени и снова засыпает. В активном режиме МК тактируется от внутреннего RC осциллятора на 8 МГц, но внутренний прескалер делит её на 2, в итоге ядро тактируется от 4 МГц. Для индикации используется четыре одноразрядных светодиодных цифровых семисегментных индикатора c общим анодом и децимальной точкой. Так же имеется 7 статусных светодиодов, назначение которых следующее:
D1- Признак отрицательного значения (минус)
D2- Признак работающего секундомера (мигает)
D3- Признак включенного первого будильника
D4- Признак включенного второго будильника
D5- Признак подачи звукового сигнала в начале каждого часа
D6- Признак работающего таймера (мигает)
D7- Признак низкого напряжения батареи питания

R1-R8 — токоограничительные резисторы сегментов цифровых индикаторов HG1-HG4 и светодиодов D1-D7. R12,R13 – делитель для контроля напряжения батареи. Поскольку напряжение питания часов 3V, а белому светодиоду D9 требуется около 3,4-3,8V при номинальном токе потребления, то он светится не в полную силу (но её хватает, чтобы не споткнуться в темноте) и поэтому подключен без токоограничительного резистора. Элементы R14, Q1, R10 предназначены для управления инфракрасным светодиодом D8 (реализация дистанционного управления для цифровых фотокамер). R19, R20, R21 служат для сопряжения при общении с устройствами, имеющими интерфейс 1-Wire. Управление осуществляется тремя кнопками, которые я условно назвал: MODE (режим), UP (вверх), DOWN (вниз). Первая из них также предназначена для пробуждения МК по внешнему прерыванию (при этом индикация включается), поэтому она подключена отдельно на вход PD3. Нажатия остальных кнопок определяется при помощи АЦП и резисторов R16,R18. Если кнопки не нажимаются в течении 16 сек, то МК засыпает и индикатор гаснет. При нахождении в режиме «Пульт ДУ для фотокамер” этот интервал составляет 32 сек., а при включенном фонарике — 1 минуту. Также МК можно усыпить вручную, используя кнопки управления. При запущенном секундомере с дискретностью счета 0,01 сек. устройство не переходит в спящий режим.

Печатная плата

Устройство собрано на двухсторонней печатной плате круглой формы по размеру внутреннего диаметра корпуса наручных часов. Но при изготовлении я использовал две односторонние платы толщиной 0,35 мм. Такую толщину опять же получил отслоив её от двухстороннего стеклотекстолита толщиной 1,5 мм. Платы затем склеил. Все это делалось потому что, у меня не было тонкого двухстороннего стеклотекстолита, а каждый сэкономленный миллиметр толщины в ограниченном внутреннем пространстве корпуса часов очень ценен, да и отпала надобность совмещения при изготовлении печатных проводников методом ЛУТ. Рисунок печатной платы и расположение деталей находятся в прилагаемых файлах. На одной стороне размещены индикаторы и токоограничительные резисторы R1-R8. На обратной — все остальные детали. Имеются два сквозных отверстия для белого и инфракрасного светодиодов.

Контакты кнопок и держатель батареи выполнены из гибкой пружинящей листовой стали толщиной 0,2…0,3мм. и залужены. Ниже приведены фото платы с двух сторон:

Конструкция, детали и их возможная замена

Микроконтроллер ATmega168PA-AU можно заменить на ATmega168P-AU, ATmega168V-10AU ATmega168-20AU. Цифровые индикаторы — 4 штуки KPSA02-105 суперяркие красного цвета свечения с высотой цифры 5,08мм. Mожно поставить из этой же серии KPSA02-xxx или KCSA02-xxx. (только не зеленые – они будут слабо светиться) Другие аналоги подобных размеров с достойной яркостью мне неизвестны. У HG1, HG3 соединение катодов сегментов отличается от HG2, HG4, потому что мне так было удобнее для разводки печатной платы. В связи с этим для них в программе применена различная таблица знакогенератора. Используемые резисторы и конденсаторы SMD для поверхностного монтажа типоразмеров 0805 и 1206, светодиоды D1-D7 типоразмера 0805. Белый и инфракрасный светодиоды диаметром 3мм. На плате имеется 13 сквозных отверстий, в которые необходимо установить перемычки. В качестве температурного датчика применён DS18B20 c интерфейсом 1-Wire. LS1 – обычная пьезоэлектрическая пищалка, вставляется в крышку. Одним контактом она соединяется с платой при помощи пружинки, установленной на ней, другим соединяется с корпусом часов самой крышкой. Кварцевый резонатор от наручных часов.

Программирование, прошивка, фьюзы

Для внутрисхемного программирования на плате имеются только 6 круглых контактных пятачка (J1), так как полноценный разъем не уместился по высоте. К программатору их подключал, используя контактное устройство, сделанное из штыревой вилки PLD2x3 и напаянных на них пружинками, прижимая их одной рукой к пятачкам. Ниже прилагается фото приспособления.

Я использовал его, так как в процессе отладки приходилось много раз перепрошивать МК. При разовой прошивке проще подпаять к пятачкам тонкие провода, подключенные к программатору, а после снова отпаять. МК удобнее прошивать без батареи, но чтобы питание поступало либо от внешнего источника +3V, либо от программатора c таким же напряжением питания. Программа написана на ассемблере в среде VMLAB 3.15. Исходные коды, прошивки для FLASH и EEPROM в приложении.

FUSE-биты микроконтроллера DD1 должны быть запрограммированы следующим образом:
• CKSEL3…0 = 0010 — тактирование от внутреннего RC осциллятора 8 МГц;
• SUT1…0 =10 — Start-up time: 6 CK + 64 ms;
• CKDIV8 = 1 — делитель частоты на 8 отключён;
• CKOUT = 1 — Output Clock on CKOUT запрещен;
• BODLEVEL2…0 = 111 — контроль напряжения питания отключён;
• EESAVE = 0 — стирание EEPROM при программировании кристалла запрещено;
• WDTON = 1 — Нет постоянного включения Watchdog Timer;
Остальные FUSE – биты лучше не трогать. FUSE–бит запрограммирован, если установлен в «0”.

Прошивка EEPROM прилагаемым в архиве дампом обязательна.

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

пп

Адрес ячейки

EEPROM

Назначение

Параметр

Примечание

1

$0000-$0001

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

260($104) (2,6V)

1 ед = 10mV

2

$0002-$0003

коэффициент для коррекции значения измеренного напряжения батареи

800…..1200

 

3

$0004

интервал времени на переход в режим сна

16($10)

1 ед. = 1 сек

4

$0005

интервал времени на переход в режим сна при включенном фонарике

60($3С)

1 ед. = 1 сек

5

$0006

интервал времени на переход в режим сна при нахождении в режиме ДУ для фотокамер

32($20)

1 ед. = 1 сек

6

$0030-$01BF

Здесь хранятся номера IButton ключей

 

50 штук

Небольшие пояснения по пунктам:

1 пункт. Здесь указывается величина напряжения на батарее, при которой загорится светодиод, сигнализирующий о её низком значении. Я поставил 2,6V (параметр — 260). Если нужно другое, например 2,4V, то надо записать 240($00F0). В ячейку по адресу $0000 заносится младший байт, соответственно в $0001 – старший.

2 пункт. Поскольку я не установил на плату переменный резистор для подстройки точности измерения напряжения батареи питания ввиду отсутствия места, то я ввел программную калибровку. Порядок калибровки для точного измерения следующий: изначально в данной ячейке EEPROM записан коэффициент 1024($400), необходимо перевести устройство в активный режим и посмотреть на индикаторе напряжение, и тут же замерить вольтметром реальное напряжение на батарее. Коэффициент коррекции (К), который необходимо выставить, вычисляется по формуле: K=Uр/Uи*1024 где Uр – реальное напряжение, измеренное вольтметром, Uи – напряжение которое, измерило само устройство. После подсчёта коэффициента ”K” его заносят в устройство (как это делается сказано в инструкции по эксплуатации). После калибровки у меня погрешность не превысила 3%.

3 пункт. Здесь задается параметр времени, через которое устройство перейдет в спящий режим, если кнопки не нажимаются. У меня стоит 16 сек. Если допустим надо, чтобы засыпало через 30 сек, то надо записать 30($26).

В 4 и 5 пунктах аналогично.

6 пункт. По адресу $0030 хранится код семейства нулевого ключа (dallas 1-Wire), затем его 48 битный номер и CRC. И так 50 ключей последовательно.

Настройка, особенности работы

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

Устройство питается от литиевой батареи CR2032 (3V) и потребляет в режиме сна примерно 4 мкА, а в активном режиме 5…20 мА в зависимости от яркости индикатора. При ежедневном пятиминутном использовании активного режима батареи должно хватить примерно на 2….8 месяцев в зависимости от яркости. Корпус часов соединен с минусом батареи.

Считывание ключей проверялось на DS1990. Эмуляция проверена на домофонах ”МЕТАКОМ”. Под порядковыми номерами от 46 до 49(последние 4) прошиты (все ключи хранятся в EEPROM, их можно изменять перед прошивкой) универсальные ключи для домофонов. Ключ, прописанный под номером 49 открывал все домофоны ”МЕТАКОМ”, которые мне попадались, остальные универсальные ключи тестировать не довелось, их коды я взял из сети.

Дистанционное управление для фотокамер проверялось на моделях Pentax optio L20, Nikon D3000. Canon не удалось заполучить для проверки.

Инструкция пользователя занимает 13 страниц, поэтому я не стал её включать в статью, а вынес в приложение в формате PDF.



Видео работы часов:


Скачать архив, который содержит:
Схема в Proteus 7.7SP2 и GIF;
Рисунок печатной платы и расположение элементов в формате SprintLayout 5;
Прошивка и исходники наассемблере;

еще один вариант печатки

Скачать печатную плату
]]>
http://elektro-shemi.ru/mnogofunkcionalnye_naruchnye_led_chasy.html/feed 12
Часы-термометр LED с радиодатчиком http://elektro-shemi.ru/chasy_termometr_led_s_radiodatchikom.html http://elektro-shemi.ru/chasy_termometr_led_s_radiodatchikom.html#comments Tue, 10 Jan 2012 20:00:00 +0000 http://www.elektro-shemi.ru/chasy_termometr_led_s_radiodatchikom.html 1. Часы-термометр LED с радиодатчиком

      Если для питания часов и приемника применяется один общий стабилизатор напряжения, то 

скорее всего (да не скорее всего, а точно) приемник начнет сильно шуметь из-за динамической 

индикации, что приведет к полной потере приема данных! Необходимо применить ДВА ОТДЕЛЬНЫХ стабилизатора 7805/78L05 как показано на схеме!

      

    Здравствуйте!

    Ну вот я и отважился на написание статьи.

  Все началось 3 года назад с изучения ASM’a и структуры PIC’ов, мигания светодиодами в Протеусе посредством PICBasic Pro и дошло до банального термометра PIC16F630 + 3LED с датчиком DS18S20, висевшим за окном. Его жизненный цикл закончился через три зимне-весенних месяца, после того как в очередной раз на DSку попала вода (хотя датчик находился под тремя!!! слоями разнокалиберной термоусадки) и отвалилась одна из ног, я решился на разработку безпроводного герметичного датчика.

   Система состояла из основного блока PIC16F630 + DS18S20 + 3LED + RCR-433-MPR и радиодатчика PIC12F629 + DS18S20 + RCT-433-AS. Корпусом для последнего послужило «яйцо» от больничных бахил. Данная конструкция проработала безотказно больше года при температуре -25… +35 *С (никаких следов окисления обнаружено не было). Батарейка датчика CR2032 (компьютерная) немного подсела с 3,3 до 3,2 вольт при посылке температуры раз в 10 минут.

    Все было хорошо, жизнь продолжалась, температура менялась, но тут неожиданно сдохли старые, собранные моим батей, часы на КР145ИК1901. Вывод напросился сам собой. Надо было только заменить PIC16F630 на что-то помощнее, ну и индикатор. Выбор пал на PIC16LF628. Через месяц трудов и еще одного месяца отладки и реализации новых функций родились они, Часы-термометр с радиодатчиком. Давайте пробежимся по возможностям данного девайса 

           PIC16LF628 + DS18S20 + 4LED_OA + RCR-433-MPR:

 

1.  Часы/день недели.

2.  Температура дома.

3.  Температура с радиодатчика.

4.  Будильник.

5.  Радиозвонок

6.  Коррекция хода.

7.  Кольцевое отображение данных.

8.  Резервное питание.

 

Дополнительные функции:

—  уменьшение яркости индикатора ночью.

—  при обрыве датчика температура_1 не отображается.

—  если сигнала с радиодатчика нет 25 минут – загорается точка при отображении температуры_2, если нет 50 минут, то температура_2 не отображается.

— выход будильника настраивается (длинный 0, короткий 0, секундные 0, генератор с настраиваемым тоном). Сигнал «каждый час» , ночью отключается.

—  коррекция хода +/-96мс…12сек в сутки или +/-180мс…24 сек/сутки.

—  отображение данных: Часы->День->Температура_1-> Температура _2.

—  время отображения данных настраивается: 1-20сек часы, 0-10сек день и температура.

—  резервное питание: CR2032, ток потребления 0,7мА, будильник работает.

Схема. 

    В часах применен индикатор CA56-12GWA (14.2мм 4х7 зеленый ОА, 10.5мКд), в его анодах стоят эмиттерные повторители КТ3102. В каналах сегментов резисторы 100-120 Ом. Пищалка взята от компьютера с последовательно включенным резистором 20 Ом. Питание часов осуществляется от телефонной зарядки. Потребляемый ток примерно 50-70мА.

    Индикатор в дежурном режиме:

—  отображение по кольцу.

—  любой пункт можно убрать, кроме часов.

—  время отображения любого пункта можно настроить.

    Пункты меню настройки:

—   вход/выход осуществляется по длинному нажатию на кнопку «МЕНЮ».

—   отображение меню по кольцу по короткому нажатию на кнопку «МЕНЮ».

—   регулировка параметров кнопками «МИНУС» и «ПЛЮС».

—  кнопки регулировки работают по такому принципу: нажал — параметр изменился, держим дальше; после некоторой задержки (0,5сек) включается автоповтор нажатия (8Гц).

—  кнопка «МИНУС» (слева) прибавляет параметр в 2х старших разрядах индикатора, уменьшает одиночный параметр или отключает будильник в дежурном меню.

—  кнопка «ПЛЮС» (справа) прибавляет параметр в 2х младших разрядах индикатора, увеличивает одиночный параметр, сбрасывает секунды в ноль или включает будильник в дежурном меню.

—  при включенном будильнике горит точка в младшем разряде индикатора.

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

    В ходе работы и появившихся вопросов по поддержке датчиков DS18B20 и расширения диапазонов коррекции хода был добавлен пункт меню SET

    Он выглядит так: «S X Y Z»

Значения переменных:

X=0 — коррекция двойная

X=1 — коррекция одинарная

Y=0 — датчик температуры DS18B20

Y=1 — датчик температуры DS18S20

Z=0 — кварц 4.000 МГц

Z=1 — кварц 4.096 МГц

Значение переменных корректируется кнопками + и — по двоичному закону.

Значения переменных меню «SET» и «Коррекция хода» заносятся в EEPROM.

    В дальнейшем мой друг @SUS предложил добавить к часам радиозвонок, что и было сделано. Был добавлен еще один пункт меню ALAR.

    В нем выбирается серийный номер звонка (0..7), в звонке этот номер выбирается тремя джамперами.Значения переменных меню «ALAR«, «SET» и «Коррекция хода» заносятся в EEPROM.

      Ну тут вроде все понятно, теперь перейдем к софту.

    Программа написана на PIC Basic Proton, занимает в памяти контроллера 99%, последнюю память потратил на звонок, который я добавил буквально вчера. В программе часов задействованы все 3 таймера, организован программный протокол 1Wire из библиотеки Basic’а. 

    По переполнению таймера_0 (4мсек) происходит аппаратное прерывание, в котором полностью рассчитываются значения часов, минут, секунд и дня недели, корректируется ход. Я достаточно долго подбирал алгоритм коррекции хода часов, но более менее оптимальный оказался как всегда на самом виду. В начале каждого часа (0 минут, 0 секунд), когда четырех миллисекундный счетчик достигнет значения 125, к нему прибавляется/отнимается константа 0…124. Получился достаточно широкий диапазон корректировки (+/-96мс…12сек в сутки).

    Так же с помощью этого прерывания организована динамическая индикация и сканирование кнопок. Когда кнопки отпущены – счетчик антидребезга равен 0, во время нажатия, значение кнопки сохраняется как старое, а счетчик начинает прибавляться при совпадении старого и нового значения кнопок. При достижении счетчика 4х, кнопка считается нажатой. Далее счетчик тикает до 30, сбрасывается в ноль и доходит до 4х – автоповтор. Но второй счетчик (я его назвал автоповтор) не даст сделать 1,2…7 автоповторы. То есть первая реакция на кнопку произойдет через 20мс, а вторая реакция — только через 840мс и далее с частотой примерно 8 Гц.

    Протокол радиопередачи слизан с IR SONY с 

немного измененными временными интервалами (хорошая синхронизация, проще декодировать по сравнению с RC5). 

    Данные радиодатчика температуры содержат следующие байты: 

—   Серийный номер (00000000).

—   Значение знака температуры

—   Значение температуры 

—   Байт CRC8. 

    Данные с радиозвонка:

—   Серийный номер (00000001).

—   Значение номера звонка

—   Нулевой байт 

—   Байт CRC8. 

    Единица передается импульсом 1200 мкс с паузой 600 мкс, 0 – 600/600, между байтами пауза 1800мкс. Перед посылкой байтов отправляется преамбула из 8-ми нулей и опознавательный сигнал длительностью 10мс. Общее время передачи составляет приблизительно 75 мсек. На пульты от автомобильных сигнализаций декодер приемника не реагирует. Во время приема (после опознавания «своего сигнала» по импульсу 10мс) индикатор гаснет на 50 мс. Это конечно минус, но использовать еще одно прерывание и декодировать сигнал в нем мне показалось довольно таки сложным и запутанным занятием.

    Теперь по радиодатчику (PIC12F629 + DS18S20 + RCT-433-AS + CR2032).

PIC12F629 работает от внутреннего генератора 4МГц (+/-2%). Кстати на качество декодирования это не сказывается, т.к. в декодере приемника допустим разброс временных интервалов +/-15%. Модуль питается от литиевого элемента 3В CR2032 (уже больше года). Корпусом служит «яйцо» от больничных бахил. Передатчик отправляет данные о температуре (DS18S20), серийный номер и CRC8 либо каждую секунду, либо троекратно через 5 минут, для переключения в схеме предусмотрен джампер (есть еще одна свободная нога). Остальное время контроллер спит и потребляет ток порядка 0,02 мА (насколько позволил измерить мой китайский мультиметр). В ходе работы прошивка обновилась — появилась поддержка PIC12F675, появился джампер на GPIO.3 для переключения между DS18S20 и DS18B20 (0 — DS18B20, 1 — DS18S20)

    Звонок в реальных условиях еще не тестировался. Построен на PIC12F629 или PIC12F675, питается от одного элемента CR2032. В звонке с помощью джамперов можно выбрать порядковый номер и соответственно в часах такая настройка тоже имеется. При нажатии кнопки звонка, три раза подряд в радиоэфир передается последовательность байтов, которую и примут часы. Если кнопка все еще нажата, то эта последовательность повторяестя. При отпускании кнопки контроллер засыпает.

    Платы для этих устройств на начальном этапе не разрабатывались. Все было выполнено на односторонних монтажках посредством провода МГТФ. И, как я убедился, работает на ура и без глюков! В последствии эти часы собрал @SUS, и помог выловить несколько багов. Благодаря его идеям в часы добавилось множество функций.

    В дальнейшем часы были усовершенствованы, об этом читай во второй статье.

 

    Удачи Вам! Быстрых контроллеров, побольше Flash, компактных программ!

 

    P.S. Несколько фоток. By @SUS (Bezkz.su)

    Перед прошивкой контроллера PIC12F629/675 обязательно считать данные с него и записать на листочек (лучше на корпусе контроллера) калибровочную константу внутреннего генератора! Она находится в последней ячейке памяти, выглядит как 34XX (например 3430, 347F). При дальнейшем программировании этого контроллера необходимо вписать эту константу в последнюю ячейку памяти.

Прошивка, исходник радиодатчика (Датчик 18S20 или 18B20, контроллер PIC12F629 или PIC12F675)

Прошивка, исходник радиозвонка (Контроллер PIC12F629 или PIC12F675)

Обновление 30.12.2011

Обновление 07.01.2012
Прошивка, исходник часов v2.4 (расширено меню SET, читай подробности в архиве)
Обновление 11.01.2012
Прошивка, исходник часов v2.4а (первые пол минуты будильник звучит с периодом 1 сек, остальные пол минуты с периодом 0,5 сек; читай подробности в архиве)

Плата 12 вольт (более предпочтительна)

Плата 5 вольт (могут быть неполадки с приемником)

— Прошивки обновил до версии 1.8 (исправлена коррекция)

— Прошивки обновил до версии 1.9 (исправлен периодически возникающий звуковой сигнал)

— Добавлена прошивка с удвоенным интервалом коррекции под кварц 4.000 МГц (х2)

— Прошивка теперь будет одна версии 2.0  (исправлены некоторые баги, добавлен пункт меню SET)

— Прошивку обновил до версии 2.1 (добавлен радиозвонок, пункт меню ALAR)

— Прошивка звонка обновлена до версии 1.1 (прошлый не работал)

— Прошивку обновил до версии 2.2 (исправлен будильник в режимах 0,1,2; введен ночной уровень яркости до 100%)

— Прошивку обновил до версии 2.2a (исправлено меню SET)

— Прошивку обновил до версии 2.2b (Уменьшено время прерывания — датчик должен работать стабильно. Уменьшено время звучания сигнала «каждый час» и выхода из меню с 400мс до 100мс)

— Прошивка версии 2.2g (убраны незначащие нули, оптимизирован опрос проводного датчика температуры, но при «-0,5 градусах» датчик считается отключенным, думаю это не критично для домашнего термометра)

— Прошивка версии 2.3 (исправлен баг с DS18B20)

— Обновлена прошивка радиодатчика до версии 1.2 (исправлена некорректная передача знака температуры)

]]>
http://elektro-shemi.ru/chasy_termometr_led_s_radiodatchikom.html/feed 1
Часы-термометр с большими LED с радиодатчиком http://elektro-shemi.ru/chasy_termometr_s_bolshimi_led_s_radiodatchikom.html http://elektro-shemi.ru/chasy_termometr_s_bolshimi_led_s_radiodatchikom.html#respond Tue, 10 Jan 2012 20:00:00 +0000 http://www.elektro-shemi.ru/chasy_termometr_s_bolshimi_led_s_radiodatchikom.html

Здравствуйте!

Ну вот  и продолжение.

Конструкцию собрал и протестировал @SUS (www.bezkz.su/forum) за что ему огромное спасибо!!! От души!

Добавлено:

— нормальный звук будильника (аппаратный ШИМ)

— большие индикаторы до 90 мА на сегмент

— статическая индикация

— автоповтор будильника через 5 минут

— дополнительный выход (логический 0 при звонящем будильнике)

Убрано:

— выбор режима выхода будильника

Схема.

 В часах применимы любые ОА LED индикаторы с током сегментов до 90 мА. Драйвер индикаторов MBI5026 имеет токовые выходы (стабилизатор тока) с настройкой резистором на 23 ноге.

Разводка платы (индикаторы с этой стороны).




Индикатор в дежурном режиме:

— отображение по кольцу.

— любой пункт можно убрать, кроме часов.

— время отображения любого пункта можно настроить.

Пункты меню настройки:

—   вход/выход осуществляется по длинному нажатию на кнопку «МЕНЮ».

—   отображение меню по кольцу по короткому нажатию на кнопку «МЕНЮ».

—   регулировка параметров кнопками «МИНУС» и «ПЛЮС».

—   кнопки регулировки работают по такому принципу: нажал — параметр изменился, держим дальше; после некоторой задержки (0,5сек) включается автоповтор нажатия (8Гц).

—   кнопка «МИНУС» (слева) прибавляет параметр в 2х старших разрядах индикатора, уменьшает одиночный параметр или отключает звук будильника в дежурном меню (длинное нажатие выключает будильник полностью, иначе будет звучать автоповтор через каждые 5 минут).

—   кнопка «ПЛЮС» (справа) прибавляет параметр в 2х младших разрядах индикатора, увеличивает одиночный параметр, сбрасывает секунды в ноль или включает будильник в дежурном меню.

—   при включенном будильнике горит точка в младшем разряде индикатора.

—   при настройке тона будильника звучит сигнал. Отображается частота Х.ХХ кГц.

By @SUS (Bezkz.su/forum)





Прошивки, исходники, протеус (v2.2 ночной режим с 23 часов)
Прошивки, исходники, протеус (v2.2a ночной режим с 22 часов)
Прошивки, исходники, протеус (v2.2b убрал звонок, добавил установку времени ночного режима 
XX.YY (XX-начало ночи,YY-конец ночи))
Прошивки, исходники, протеус (v2.3 звонок остался, убран ночной режим, яркость автоматическая)

Обновление 31.12.2011
Прошивки, исходники, протеус (v2.2_0t ночной режим с 23 часов, убран «0» t*C)
Прошивки, исходники, протеус (v2.2a_0t ночной режим с 22 часов, убран «0» t*C)
Прошивки, исходники, протеус (v2.2b_0t убрал звонок, добавил установку времени ночного режима 
XX.YY (XX-начало ночи,YY-конец ночи), убран «0» t*C, тон будильника сохраняется в EEPROM)
Прошивки, исходники, протеус (v2.3_0t звонок остался, убран ночной режим, яркость автоматическая, убран «0» t*C, тон будильника сохраняется в EEPROM)
Прошивки, исходники, протеус (v2.3_0t_0с звонок остался, убран ночной режим, яркость автоматическая, убран «0» в температуре и в часах, тон будильника сохраняется в EEPROM)

Обновление 05.01.2012
Прошивки, исходники, протеус (v2.4 без звонка, расширено меню SET; читай описание в архиве)

Обновление 06.01.2012
Прошивки, исходники, протеус (v2.5 звонок есть, расширено меню SET; читай описание в архиве)



Прошивки радиодатчика температуры и радиозвонка в статье №1

— Прошивки обновил до версии 1.8 (исправлена коррекция)
— Прошивки обновил до версии 1.9 (исправлен периодически возникающий звуковой сигнал)

— Добавлена прошивка с удвоенным интервалом коррекции под кварц 4.000 МГц (х2)
— Прошивка теперь будет одна версии 2.0  (исправлены некоторые баги, добавлен пункт меню SET)

— Прошивку обновил до версии 2.1 (добавлен радиозвонок, пункт меню ALAR)

— Прошивку обновил до версии 2.1а (исправлена работа с кварцем 4.096, исправлено меню SET)
— Прошивку обновил до версии 2.1b (переработан алгоритм записи в EEPROM, переработан опрос проводного датчика температуры)
— Прошивку обновил до версии 2.2 (исправлен серьезный баг связанный с DS18B20)


]]>
http://elektro-shemi.ru/chasy_termometr_s_bolshimi_led_s_radiodatchikom.html/feed 0
Матричные часы-будильник-термометр http://elektro-shemi.ru/matrichnye_chasy_budilnik_termometr.html http://elektro-shemi.ru/matrichnye_chasy_budilnik_termometr.html#comments Sat, 05 Nov 2011 20:00:00 +0000 http://www.elektro-shemi.ru/matrichnye_chasy_budilnik_termometr.html Многие радиолюбители, начинающие и не только, любят «изобретать велосипед» — строить СВОИ электронные часы. Не обошла эта участь и меня. Конструкций часов в инете сегодня конечно предостаточно, но вот часов на светодиодных матрицах почему-то среди них единицы. В тоже время, светодиодные матрицы сейчас очень сильно подешевели, и их стоимость не выше, а то и ниже, чем у семисегментных индикаторов такого же размера.? Например, примененные мной KINGBRIGHT TA12-11 достались за дарма из утилизированных игровых автоматов, которые за два дня переродились в эти часы. Информации разместить на матричном индикаторе можно намного больше. Кроме цифр на них можно отображать любые буквы, знаки, а с помощью бегущей строки еще и текст, например, так:

Исходя из этого, появилось желание построить часы на светодиодных матрицах, но чтоб схема при этом получилась не сложнее чем на семисегментниках. Также хотелось чтоб она была достаточно функциональная и не похожая на другие. Так родилась следующая схема:

В общем-то ничего сложного, односторонние печатные платы, при желании можно легко сделать на монтажках

Рисунок платы можно без проблем мультиплицировать до разумно-неограниченного числа матриц.

Далее фото индикатора крупным планом:

Цифры на индикаторе крупные, яркие, цветные; очень подуйдут для моей бабушки.

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

Файлы:
прошивка, платы

]]>
http://elektro-shemi.ru/matrichnye_chasy_budilnik_termometr.html/feed 4
Пропеллер часы http://elektro-shemi.ru/propeller_chasy.html http://elektro-shemi.ru/propeller_chasy.html#comments Fri, 30 Sep 2011 20:00:00 +0000 http://www.elektro-shemi.ru/propeller_chasy.html


И так, для изготовления Пропеллер часов нам понадобятся следующие детали:
Для часов:

* Драйвер LED MBI5170CD( SOP16, 8 bit) — 4 штуки.
* Часы реального времени DS1307Z/ZN( SMD, SO8) — 1 штука.
* Микроконторллер ATmega32-16AU (32K Flash, TQFP44, 16MH) — 1 штука.
* Кварцевые резонаторы 16MHz — 1 штука.
* Кварцевые резонаторы 32kHz — 1 штука.
* Линейный стабилизатор 78M05CDT — 1 штука.
* Резистор 100nF (0603 SMD) — 6 штук.
* Кер. конденсатор 22pF (0603 SMD) — 2 штуки.
* Кер. конденсатор 10mF*10v (0603 SMD) — 2 штуки.
* Резистор 10kOm (0603 SMD) — 5 штук.
* Резистор 200Om (0603 SMD) — 1 штука.
* Резистор 270Om (0603 SMD) — 1 штука.
* Резистор 2kOm (0603 SMD) — 4 штуки.
* Еще нужно: часовая батарейка, держатель для нее, ИК светодиод, ИК транзистор, Светодиоды (0850) 33 штуки (один из них (крайний) можно другого цвета)

Для драйвера моторчика:

* Драйвер двигателя TDA5140A — 1 штука.
* Линейный стабилизатор 78M05CDT — 1 штука.
* Кер. конденсатор 100 mF полярный (0603 SMD) — 1 штука.
* Кер. конденсатор 100 nF (0603 SMD) — 1 штука.
* Кер. конденсатор 10 mF полярный (0603 SMD) — 2 штуки.
* Кер. конденсатор 10 nF(0603 SMD) — 1 штука.
* Кер. конденсатор 220 nF(0603 SMD) — 1 штука.
* 20 тА — 2 штуки.
* Резистор 10 kOm (0603 SMD) — 1 штука.    

Скачать печатку, прошивку и исходник

]]>
http://elektro-shemi.ru/propeller_chasy.html/feed 1
Простейшие электронные часы на микроконтроллере http://elektro-shemi.ru/prostejshie_ehlektronnye_chasy_na_mikrokontrollere.html http://elektro-shemi.ru/prostejshie_ehlektronnye_chasy_na_mikrokontrollere.html#comments Fri, 30 Sep 2011 20:00:00 +0000 http://www.elektro-shemi.ru/prostejshie_ehlektronnye_chasy_na_mikrokontrollere.html
Простейшие электронные часы на микроконтроллере
(С исходником снабженным подробнейшими кометариями)

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

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

Часы собраны на 2-х печатных платах, пристыкованных одна к одной под углом 90 градусов. На одной плате размещен целиком индикатор, а все остальное на другой. Элемент резервного питания выломан из китайской зажигалки со светодиодным фонариком. Удаляем светодиод, а держатель батареек устанавливаем на плату. На фотографии видно, что к батарейкам выведены обрезки выводов резисторов — они то и держут всю эту конструкцию. Конечно емкость таких батареек невелика, но когда часы питаются от сети, ток от батареек не потребляется. Они питают схему, только если нет сетевого питания. При этом питается только микроконтроллер, индикатор же от батареек не питается, поэтому гаснет, а часы продолжают ход. Кнопки управление вынесены с платы в любое удобное место корпуса. Конструкция кнопок может быть любой. Для питания от сети использован китайский БП-адаптор, в который добавлена плата с микросхемой 7805 (5-ти вольтовый стабилизатор). Вобще подойдет любой блок питания, с выходным напряжением 5В и током 150мА.

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

Скачать архив — в архиве содержатся разводки печатных плат, прошивка микроконтроллера и исходный тест программы под MP_LAB IDE, с подробными комментариями.

]]>
http://elektro-shemi.ru/prostejshie_ehlektronnye_chasy_na_mikrokontrollere.html/feed 27
Простые часы на светодиодных матрицах. http://elektro-shemi.ru/prostye_chasy_na_svetodiodnykh_matricakh.html http://elektro-shemi.ru/prostye_chasy_na_svetodiodnykh_matricakh.html#comments Wed, 28 Sep 2011 20:00:00 +0000 http://www.elektro-shemi.ru/prostye_chasy_na_svetodiodnykh_matricakh.html Многие  радиолюбители,начинающие и не только любят «изобретать велосипед» —  строить СВОИ электронные часы.  Не обошлаэта участь и меня.  Конструкций часов винете сегодня конечно предостаточно,   новот  часов на светодиодных матрицах  почему-то среди них единицы.  В русскоговорящем интернете я нашел толькоодну полностью законченную и описанную конструкцию.  В тоже время,светодиодные матрицы сейчас очень сильно подешевели,  и их стоимость  не выше, а то и ниже,  чем у семисегментныхиндикаторов  такого же размера.     Например примененные мной GNM23881AD  при размере 60х60мм были куплены за 1,5уе  (3индикатора обошлись в 4,5уе),    за этиденьги врядли  можно  купить четыре семисегментника  таких-же  размеров.  А вот  информации, разместить  на матричном индикаторе, можно намногобольше.  Кроме цифр на них можноотображать   любые буквы,  знаки, а с помощью  бегущей строки еще итекст.   Исходя  из этого, появилось  желание  построить  часы   на светодиодныхматрицах,   но  чтоб схема при этом   получилась не сложнее чем  на  семисегментниках.   Также хотелось чтоб она была   достаточно функциональная и не похожая надругие.     Так родилась следующая схема.

Функционал у часов такой:

Отсчет времени,  календарь, день недели.  (високосный годучитывается,  переход  на летнее/зимнее время не осуществляется).

Сохранение хода часов припропадании внешнего питания (потребление составляет 15мка).

Коррекция хода + —  59,9сек\сутки,  с шагом 0,1сек.

9 будильников.  3 из которых «одноразовые», и  6 «постоянных»,  индивидуально настраиваемых по дням недели.

Индивидуально настраиваемаядлительность звукового сигнала каждого будильника (1-15мин).

Звуковое подтверждение нажатиякнопок  (возможно отключить).

Ежечасный звуковой сигнал(возможно отключить).   С 00-00  до 08-00  сигнал не подаётся. 

1 или 2  датчика температуры (Улица и дом).

Настраиваемая бегущая строка,посредством которой выводится вся информация (кроме времени)

Значение коррекции хода, и настройки«бегущей  строки» —  сохраняются даже при пропадании резервногопитания.

«Сердцем» часов выбрана AtMega16A,из-за её доступности, дешевизны и «ногастости». Схему хотелось максимально упростить, поэтому все что можно, было возложено на контроллер.  В результате удалось обойтись всего двумямикросхемами,  контроллером и регистром TPIC6B595.  Если кому то недоступен TPIC6B595,  то можно его заменить на  74НС595 + ULN2803. Оба варианта были опробованы.   Так же можно попробовать применить  TPIC6С595,  она немногослабовата, и  слегка грелась,  но в целом работала стабильно.  Отсчет времени  производится  с помощью асинхронного тайме – Т2.    Ход  часов сохраняется и  при пропадании  питания. В это время бОльшая часть схемы  обесточивается,  а контроллер питается  от батарейки,аккумулятора , или от ионистора.  Мнебыло интересно «по играться» с ионистором,  поэтому применил его.  Токпотребления часами в дежурном режиме составляет 15мка.   При питании от ионисторана 1Ф,  часы «продержались»   четверо суток.   Этого вполне достаточно для поддержания ходаво время перебоев питания.   Еслиприменить батарейку СR2032,  то теоретически, по расчетам  заряда должно хватить на 1,5года.    Наличие сетевого напряжения контроллер«слушает»  через  вывод РВ.3      Этот вывод является инвертирующем входомкомпаратора.  Напряжение питания,  через делитель R2-R3 подается на вывод РВ.3,    и в нормальном состоянииравно примерно 1,5в.  Если внешнеенапряжение упадет ниже  4,1 вольта,  то напряжение на выводе РВ.3    станет  меньше 1,23вольта,  при этом  сгенерируется прерывание от компаратора, и вобработчике этого прерывания  выключаютсявсе «лишние»  узлы контроллера   и сам контроллер усыпляется.  В этом режиме продолжает работать толькоотсчитывающий время таймер Т2.  Припоявлении внешнего питания, напряжение на РВ.3  снова  подымится выше 1,23в,  контроллер «увидев» это, переведет все узлы врабочее состояние.  Если  вместо ионистора, будет использоватьсябатарейка СR2032,  то её нужно подключить через диод(предпочтительнодиод шоттки).  Анод  диода подключается к + батарейки,  а катод к катоду VD1. 

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

9 будильников разделены на 3 одноразовых и 6многоразовых.  При включениибудильников   1-3, они  срабатывают только один раз.  Для того чтоб они сработали еще раз, их нужноповторно включать вручную.  А будильники4-9  многоразовые,  т.е. они будут срабатывать ежедневно, вустановленное время.  Кроме того этибудильники можно настроить  на сработкутолько в определенные  дни недели.  Это удобно, например если не хотите чтоб будильник разбудил Вас ввыходные.  Или  например Вам нужно просыпаться в будние дни в7-00,  а в четверг в 8-00, а на выходныхбудильник не нужен.  Тогда настраиваемодин многоразовый  на 7-00 в  понедельник-среду и пятницу,  а второй на 8-00 в четверг…..      Кроме того все будильники имеют настройкудлительности сигнала,  и если Вам, длятого чтоб проснуться,  мало сигнала втечении 1 минуты,  то можно увеличить егона  время от 1 до 15мин.

Коррекция хода производится один раз в сутки, в 00-00.  Если часы спешат к примеру на 5 сек всутки,  то в 00-00-00 время  установится в 23-59-55,  если же часы отстают,  то в 00-00-00 время установится в 00-00-05.   Шаг коррекции – 0,1 сек. Максимальная коррекция – 59,9 сек/сутки.     С исправным кварцем больше вряд липонадобиться.   Коррекция осуществляетсяи в дежурном режиме при питании от батареи.

Светодиодные матрицы можно использовать любые 8*8 светодиодов с общим катодом.  Как уже было указано, я применил GNM23881AD. В принципе можно «набрать» матрицу и из отдельных светодиодов.   Микроконтроллер AtMega16a можно заменить на «старый»  AtMega16 с буквой L.  При этом, теоретически должен немногоувеличится ток потребления от батарейки. Наверное будет работать и просто  AtMega16, но могут возникнутьпроблемы при работе от батарейки.  Диод  D1 — желательно любой диод шоттки.   С обычным выпрямительнымтоже работает,  но чтоб обезопасить себяот различных глюков,  связанных с тем чточасть схемы питается напряжением «до диода», а часть «после диода»  лучшепоискать шоттки.  Транзистор VT1 – любой   n-p-n.

Управление часами осуществляется двумя кнопками.  Их количество можно было довести до 8шт, недобавляя больше вообще ни одного компонента, кроме самих кнопок,   но захотелось  попробовать «выкрутится» всего двумя.   Кнопки условно названы «ОК» и «ШАГ».  Кнопкой «ШАГ» как правило происходит переходк следующему пункту меню,  а кнопкой «ОК»изменение параметров  текущего меню.    Сигнал сработавшего  будильника  также выключается   кнопками «ОК» или «ШАГ».    Нажатие  любой кнопки  во время сигналабудильника  отключает  его.    Схема управления получилась такой:

Конструктивно часывыполнены на одной ПП.  Размер ППсоответствует размеру индикаторов.   Минимальная ширина дорог ПП – 0,4мм, расстояние между – 0,4мм.   Такчто любители «ЛУТа»  смогут без трудаизготовить плату самостоятельно.
Все элементы — в SMD исполнении, и расположены с одной стороныплаты.  А индикаторы с другой.  Получается миниатюрный монолитный блок, который легко встроить в какой ни будьнебольшой плоский корпус.

Корпус «спаян» изстеклотекстолита,  прошпаклеван ипокрашен в цвет «спелая вишня».   Стеклопередней панели – обычное  тонированноестекло.

Финальный результат.

Проект в протеусе у меня почему то не заработал,  так что отлаживал в железе.  Если кто соберет в протеусе,  и у него нормально заработает — присылайте,обязательно выложу.

Обсуждение и вопросы можно задавать  на форуме  http://radiokot.ru/forum/viewtopic.php?f=25&t=50199   Если у кого появятся интересные идеи что ещеможно добавить в часы – пишите не стесняйтесь, реализую все, что смогу (правда кодер я слабенький..…).  

Видео работы часов — http://www.youtube.com/watch?v=kYM-qe5YGf0    (что то не получается у меня нормальноснять видео.  Изображение в реальностиплавное и четкое,  а на видео выходит  дерганное и «рваное»….)

Прошивка и исходникна си (CodeVision_AVR_2.05)

Плата Lay



Прошивка на українській мові — скачать 

]]>
http://elektro-shemi.ru/prostye_chasy_na_svetodiodnykh_matricakh.html/feed 1