С51 (YSZ-4) Электронные часы-конструктор на микроконтроллере
- Цена: $1,55+$0,61(доставка)
- Перейти в магазин
Данные часы уже несколько раз обозревались, но я надеюсь, что мой обзор будет тоже Вам интересным. Добавил описание работы и инструкцию.
Конструктор покупался на ebay.com за 1.38 фунтов (0.99+0.39 доставка), что эквивалентно 2.16$. На момент покупки это самая низкая цена из всех предложенных.
Доставка заняла около 3х недель, набор пришел в обычном полиэтиленовом пакетике, который в свою очередь был упакован в небольшой «пупырчатый» пакет. На выводах индикатора был небольшой кусочек пенопласта, остальные детали были без какой либо защиты.
Из документации только небольшой листочек формата А5 со списком радиодеталей с одной стороны и принципиальной электрической схемой с другой.
Основой или «сердцем» часов является 8-ми разрядный КМОП микроконтроллер AT89C2051-24PU оснащенный Flash программируемым и стираемым ПЗУ объемом 2кб.
Узел тактового генератора собран по схеме (рис.1) и состоит из кварцевого резонатора Y1 двух конденсаторов C2 и С3, которые образуют вместе параллельный колебательный контур.
Изменением емкости конденсаторов можно в небольших пределах изменять частоту тактового генератора и соответственно точность хода часов. На рисунке 2 показан вариант схемы тактового генератора с возможностью регулировки погрешности часов.
Узел начального сброса служит для установки внутренних регистров микроконтроллера в начальное состояние. Он служит для подачи после подключения питания на 1 вывод МК единичного импульса длительностью не менее 1 мкс (12 периодов тактовой частоты).
Состоит из RC цепочки, образуемой резистором R1 и конденсатором C1.
Схема ввода состоит из кнопок S1 и S2. Программно сделано так, что при одиночном нажатии любой из кнопок в динамике раздается одиночный сигнал, а при удержании двойной.
Модуль индикации собран на четырехразрядном семисегментном индикаторе с общим катодом DS1 и резистивной сборке PR1.
Резистивная сборка представляет собой набор резисторов в одном корпусе:
Звуковая часть схемы представляет собой схему собранную на резисторе R2 10кОм, pnp транзисторе Q1 SS8550(выполняющего роль усилителя) и пьезоэлемента LS1.
Питание подается через разъем J1 с подключенным параллельно сглаживающим конденсатором C4. Диапазон питающих напряжений от 3 до 6В.
При каждом кратковременном нажатии на кнопку S2 дисплей будет переключаться между режимами («ЧАСЫ: МИНУТЫ») и («МИНУТЫ: СЕКУНДЫ»).
При длительном нажатии кнопки S1 происходит вход в меню настроек, состоящее из 9 подменю, обозначенных буквами A, B, C, D, E, F, G, H, I. Подменю переключаются кнопкой S1, значения изменяются кнопкой S2. После подменю I следует выход из меню настроек.
А: Установка показаний часов текущего времени
При нажатии кнопки S2 значение часов изменяется от 0 до 23. После установки часов необходимо нажать S1 для перехода в подменю B.
B: Установка показаний минут текущего времени
При нажатии кнопки S2 значение минут изменяется от 0 до 59. После установки минут необходимо нажать S1 для перехода в подменю С.
C: Включение ежечасного звукового сигнала
По умолчанию включено (ON) – каждый час с 8:00 до 20:00 подается звуковой сигнал. При нажатии кнопки S2 значение изменяется между ON (Вкл.) и OFF (Выкл.). После установки значения необходимо нажать S1 для перехода в подменю D.
D: Включение\выключение первого будильника
По умолчанию будильник включен (ON). При нажатии кнопки S2 значение изменяется между ON (Вкл.) и OFF (Выкл.). После установки значения необходимо нажать S1 для перехода в следующее подменю. Если будильник выключен, то подменю E и F пропускаются.
E: Установка показаний часов первого будильника
При нажатии кнопки S2 значение часов изменяется от 0 до 23. После установки часов необходимо нажать S1 для перехода в подменю F.
F: Установка показаний минут первого будильника
При нажатии кнопки S2 значение минут изменяется от 0 до 59. После установки минут необходимо нажать S1 для перехода в подменю С.
G: Включение\выключение второго будильника
По умолчанию будильник включен (ON). При нажатии кнопки S2 значение изменяется между ON (Вкл.) и OFF (Выкл.). После установки значения необходимо нажать S1 для перехода в следующее подменю. Если будильник выключен, то подменю H и I пропускаются и происходит выход из меню настроек.
H: Установка показаний часов второго будильника
При нажатии кнопки S2 значение часов изменяется от 0 до 23. После установки часов необходимо нажать S1 для перехода в подменю I.
I: Установка показаний минут второго будильника
При нажатии кнопки S2 значение минут изменяется от 0 до 59. После установки минут необходимо нажать S1 для выхода из меню настроек.
Коррекция секунд
В режиме («МИНУТЫ: СЕКУНДЫ») необходимо удержать кнопку S2 для обнуления секунд. Далее коротким нажатием на кнопку S2 запустить отсчет секунд.
+ Низкая цена
+ Легкая сборка, минимум деталей
+ Удовольствие от самостоятельной сборки
+ Достаточно низкая погрешность (у меня за сутки отстали на несколько секунд)
Минусы:
— После отключения питания не держит время
— Отсутствие какой либо документации, кроме схемы (данная статья частично решила этот минус)
— Прошивка в микроконтроллере защищена от считывания
2) Проблему аварийного питания при отключении электроэнергии можно решить при помощи батарейки на 3В и двух диодов:
Конструктор покупался на ebay.com за 1.38 фунтов (0.99+0.39 доставка), что эквивалентно 2.16$. На момент покупки это самая низкая цена из всех предложенных.
Доставка заняла около 3х недель, набор пришел в обычном полиэтиленовом пакетике, который в свою очередь был упакован в небольшой «пупырчатый» пакет. На выводах индикатора был небольшой кусочек пенопласта, остальные детали были без какой либо защиты.
Из документации только небольшой листочек формата А5 со списком радиодеталей с одной стороны и принципиальной электрической схемой с другой.
1. Принципиальная электрическая схема, используемые детали и принцип работы
Основой или «сердцем» часов является 8-ми разрядный КМОП микроконтроллер AT89C2051-24PU оснащенный Flash программируемым и стираемым ПЗУ объемом 2кб.
Узел тактового генератора собран по схеме (рис.1) и состоит из кварцевого резонатора Y1 двух конденсаторов C2 и С3, которые образуют вместе параллельный колебательный контур.
Изменением емкости конденсаторов можно в небольших пределах изменять частоту тактового генератора и соответственно точность хода часов. На рисунке 2 показан вариант схемы тактового генератора с возможностью регулировки погрешности часов.
Узел начального сброса служит для установки внутренних регистров микроконтроллера в начальное состояние. Он служит для подачи после подключения питания на 1 вывод МК единичного импульса длительностью не менее 1 мкс (12 периодов тактовой частоты).
Состоит из RC цепочки, образуемой резистором R1 и конденсатором C1.
Схема ввода состоит из кнопок S1 и S2. Программно сделано так, что при одиночном нажатии любой из кнопок в динамике раздается одиночный сигнал, а при удержании двойной.
Модуль индикации собран на четырехразрядном семисегментном индикаторе с общим катодом DS1 и резистивной сборке PR1.
Резистивная сборка представляет собой набор резисторов в одном корпусе:
Звуковая часть схемы представляет собой схему собранную на резисторе R2 10кОм, pnp транзисторе Q1 SS8550(выполняющего роль усилителя) и пьезоэлемента LS1.
Питание подается через разъем J1 с подключенным параллельно сглаживающим конденсатором C4. Диапазон питающих напряжений от 3 до 6В.
2. Сборка конструктора
Сборка трудностей не вызвала, на плате подписано, куда какие детали паять.Много картинок - сборка конструктора спрятана под спойлером
Я начал с панельки, так как она единственная не является радиодеталью:
Следующим шагом я припаял резисторы. Перепутать их невозможно, они оба на 10кОм:
После этого установил на плату соблюдая полярность электролитический конденсатор, резисторную сборку (также обращая внимание на первый вывод) и элементы тактового генератора — 2 конденсатора и кварцевый резонатор
Следующим шагом припаиваю кнопки и конденсатор фильтра питания:
После этого очередь за звуковым пьезоэлементом и транзистором. В транзисторе главное установить правильной стороной и не перепутать выводы:
В последнюю очередь припаиваю индикатор и разъем питания:
Подключаю к источнику напряжением 5В. Все работает!!!
Следующим шагом я припаял резисторы. Перепутать их невозможно, они оба на 10кОм:
После этого установил на плату соблюдая полярность электролитический конденсатор, резисторную сборку (также обращая внимание на первый вывод) и элементы тактового генератора — 2 конденсатора и кварцевый резонатор
Следующим шагом припаиваю кнопки и конденсатор фильтра питания:
После этого очередь за звуковым пьезоэлементом и транзистором. В транзисторе главное установить правильной стороной и не перепутать выводы:
В последнюю очередь припаиваю индикатор и разъем питания:
Подключаю к источнику напряжением 5В. Все работает!!!
3. Установка текущего времени, будильников и ежечасового сигнала.
После включения питания дисплей находится в режиме («ЧАСЫ: МИНУТЫ») и отображает время по умолчанию 12:59. Ежечасный звуковой сигнал включен. Оба будильника включены. Первый установлен на время срабатывания 13:01, а второй – 13:02.При каждом кратковременном нажатии на кнопку S2 дисплей будет переключаться между режимами («ЧАСЫ: МИНУТЫ») и («МИНУТЫ: СЕКУНДЫ»).
При длительном нажатии кнопки S1 происходит вход в меню настроек, состоящее из 9 подменю, обозначенных буквами A, B, C, D, E, F, G, H, I. Подменю переключаются кнопкой S1, значения изменяются кнопкой S2. После подменю I следует выход из меню настроек.
А: Установка показаний часов текущего времени
При нажатии кнопки S2 значение часов изменяется от 0 до 23. После установки часов необходимо нажать S1 для перехода в подменю B.
B: Установка показаний минут текущего времени
При нажатии кнопки S2 значение минут изменяется от 0 до 59. После установки минут необходимо нажать S1 для перехода в подменю С.
C: Включение ежечасного звукового сигнала
По умолчанию включено (ON) – каждый час с 8:00 до 20:00 подается звуковой сигнал. При нажатии кнопки S2 значение изменяется между ON (Вкл.) и OFF (Выкл.). После установки значения необходимо нажать S1 для перехода в подменю D.
D: Включение\выключение первого будильника
По умолчанию будильник включен (ON). При нажатии кнопки S2 значение изменяется между ON (Вкл.) и OFF (Выкл.). После установки значения необходимо нажать S1 для перехода в следующее подменю. Если будильник выключен, то подменю E и F пропускаются.
E: Установка показаний часов первого будильника
При нажатии кнопки S2 значение часов изменяется от 0 до 23. После установки часов необходимо нажать S1 для перехода в подменю F.
F: Установка показаний минут первого будильника
При нажатии кнопки S2 значение минут изменяется от 0 до 59. После установки минут необходимо нажать S1 для перехода в подменю С.
G: Включение\выключение второго будильника
По умолчанию будильник включен (ON). При нажатии кнопки S2 значение изменяется между ON (Вкл.) и OFF (Выкл.). После установки значения необходимо нажать S1 для перехода в следующее подменю. Если будильник выключен, то подменю H и I пропускаются и происходит выход из меню настроек.
H: Установка показаний часов второго будильника
При нажатии кнопки S2 значение часов изменяется от 0 до 23. После установки часов необходимо нажать S1 для перехода в подменю I.
I: Установка показаний минут второго будильника
При нажатии кнопки S2 значение минут изменяется от 0 до 59. После установки минут необходимо нажать S1 для выхода из меню настроек.
Коррекция секунд
В режиме («МИНУТЫ: СЕКУНДЫ») необходимо удержать кнопку S2 для обнуления секунд. Далее коротким нажатием на кнопку S2 запустить отсчет секунд.
4. Общие впечатления от часов.
Плюсы:+ Низкая цена
+ Легкая сборка, минимум деталей
+ Удовольствие от самостоятельной сборки
+ Достаточно низкая погрешность (у меня за сутки отстали на несколько секунд)
Минусы:
— После отключения питания не держит время
— Отсутствие какой либо документации, кроме схемы (данная статья частично решила этот минус)
— Прошивка в микроконтроллере защищена от считывания
5. Дополнительно:
1) На безграничных просторах интернета нашел инструкцию к этим часам на английском языке и перевел ее на русский. Скачать ее можно здесь2) Проблему аварийного питания при отключении электроэнергии можно решить при помощи батарейки на 3В и двух диодов:
Самые обсуждаемые обзоры
+74 |
3807
147
|
+56 |
3977
69
|
+35 |
3103
60
|
А точнее, после предисловия/вступления
И я бы к ним мини/микро юсб разъем бы припаял
P.S.: Сам покупал и паял те, клёвые — с термометром, батарейкой и реагирующие на уровень освещённости — писал кипятком, когда они с первого раза заработали, и очень доволен дизайном (покупал сразу с акриловым корпусом) и работой.
На ум приходит попробовать запитать их через какой нибудь контроллер заряда с аккумулятором, что-то вроде мини ИБП для них.
banggood.com/DIY-4-Digit-LED-Electronic-Clock-Kit-Temperature-Light-Control-Version-p-972289.html
Брал зелёные с корпусом. Прикольная, кстати, идея применена для скрепления пластин корпуса.
В одном флаконе (прошивке) там столько всего и к тому-же модульно через конструктор, что самому писать столько — устать можно. Цена ИМХО не велика, за проделанную работу. Да и комюнити вокруг проекта неплохой образовался, обсуждается всё — от перспективных идей до реализации своих модулей и прошивок, на базе основного SDK и в среде разработки Arduino.
А так найти можно, в сети. Например первая попавшаяся ссылка: 150 рублёв + доставка
По поводу питания: дисплей при динамической индикации потребляет не более 140мА, микроконтроллер в активном режиме на частоте 12 МГц потребляет 15 мА при 6 В и 5,5 мА при напряжении питания 3 В.
Как раз от дешевого китайского зарядного устройства для мобилки (неоригинального) я их и питаю. Питания хватает, работают нормально.
В качестве корпуса использовать что-то типа этого: :)))
Хочу немного модернизировать (упростить), а оригинальная защищена.
1. AT89C2051 learning board minimum system board You need to use the SP200 programmer
2. EP51 programmer AT89C2051 AT89S51
Однако…
Или может кто подскажет, как вообще проверить прошита ли микросхема?
Три батарейки по 1.5 В решили проблему.
Теперь при обесточивании по блоку питания, в память часы продолжают работать.
При этом экран не горит и не садит батарейки.
Вот как это выглядит у меня:
В пайке не первый год, все перепроверил, ошибок нет.
Возможно мконтроллер не прошит. Печально, ребенок старался и тут на тебе!
Судя по цене вопроса проще выкинуть, чем разбираться с прошивкой.