Часы на ATtiny13: компактное решение для создания наручных электронных часов

Как сделать электронные часы на микроконтроллере ATtiny13. Какие компоненты потребуются для сборки. Как запрограммировать микроконтроллер и подключить дисплей. Какие особенности нужно учесть при разработке схемы и прошивки.

Компоненты для сборки часов на ATtiny13

Для создания компактных электронных часов на базе микроконтроллера ATtiny13 потребуются следующие основные компоненты:

  • Микроконтроллер ATtiny13
  • Модуль часов реального времени DS1302
  • Светодиодный или ЖК-дисплей для отображения времени
  • Кварцевый резонатор на 32.768 кГц
  • Кнопка для настройки времени
  • Батарейка CR2032 на 3В
  • Резисторы, конденсаторы и другие вспомогательные компоненты

Ключевым элементом является ATtiny13 — компактный 8-битный микроконтроллер с 1 кБ флэш-памяти и 64 байтами ОЗУ. Несмотря на ограниченные ресурсы, его возможностей достаточно для реализации простых электронных часов.

Схема подключения компонентов

Основные соединения в схеме часов на ATtiny13:


  • DS1302 подключается к ATtiny13 по трехпроводному интерфейсу (CLK, DAT, RST)
  • Кварцевый резонатор подключается к выводам XTAL1 и XTAL2 микросхемы DS1302
  • Светодиодный дисплей подключается к свободным выводам ATtiny13 через токоограничивающие резисторы
  • Кнопка настройки подключается к одному из выводов ATtiny13 и подтягивается к питанию резистором

При разработке схемы важно учитывать ограниченное количество выводов ATtiny13 и оптимально использовать имеющиеся ресурсы микроконтроллера.

Программирование микроконтроллера ATtiny13

Для программирования ATtiny13 удобно использовать Arduino IDE с установленным пакетом MicroCore. Процесс прошивки включает следующие шаги:

  1. Подключение программатора (например, Arduino в режиме ISP) к выводам ATtiny13
  2. Выбор платы ATtiny13 и настройка параметров в Arduino IDE
  3. Написание скетча с использованием компактных библиотек для работы с DS1302 и дисплеем
  4. Компиляция и загрузка прошивки в микроконтроллер

Из-за ограниченной памяти важно оптимизировать код, избегая использования стандартных «тяжелых» библиотек Arduino.


Особенности разработки прошивки для ATtiny13

При создании программного обеспечения для часов на ATtiny13 следует учитывать ряд особенностей:

  • Ограниченный объем памяти требует оптимизации кода и данных
  • Необходимо использовать компактные библиотеки или писать низкоуровневый код
  • Желательно применять энергосберегающие режимы работы микроконтроллера
  • Важно правильно настроить внутренний генератор ATtiny13 для точного отсчета времени

Грамотная оптимизация позволяет реализовать базовый функционал часов даже в рамках 1 кБ памяти программ ATtiny13.

Варианты отображения информации

Для индикации времени в часах на ATtiny13 можно использовать различные способы:

  • Светодиодная матрица 4×4 для отображения цифр
  • Семисегментные светодиодные индикаторы
  • Компактный ЖК-дисплей
  • Бинарное представление времени на отдельных светодиодах

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


Питание и энергопотребление

Для обеспечения длительной автономной работы часов важно минимизировать энергопотребление:

  • Использование режимов сна ATtiny13 между обновлениями индикации
  • Применение энергоэффективных компонентов (дисплей, стабилизатор напряжения)
  • Оптимизация яркости светодиодов
  • Использование батареи достаточной емкости (например, CR2032)

Грамотная оптимизация позволяет добиться времени автономной работы до нескольких месяцев от одной батарейки типа CR2032.

Корпус и конструкция часов

Для создания компактных наручных часов на ATtiny13 можно использовать следующие варианты корпуса:

  • 3D-печать корпуса из пластика
  • Фрезеровка корпуса из акрила или алюминия
  • Сборка из готовых компонентов (например, корпус для Arduino Nano)

При проектировании корпуса нужно предусмотреть удобный доступ к кнопке настройки и возможность замены батарейки. Для крепления на руку можно использовать стандартный ремешок для часов.

Преимущества и недостатки часов на ATtiny13

Рассмотрим основные плюсы и минусы реализации часов на базе ATtiny13:


Преимущества:

  • Компактность и низкое энергопотребление
  • Простота схемы и доступность компонентов
  • Возможность создания уникального дизайна
  • Низкая стоимость элементной базы

Недостатки:

  • Ограниченный функционал из-за малого объема памяти
  • Сложность программирования и отладки
  • Невысокая точность хода без внешнего кварцевого резонатора
  • Отсутствие готовых библиотек для работы с периферией

Несмотря на ограничения, часы на ATtiny13 могут стать отличным учебным проектом или основой для создания уникальных дизайнерских часов.


Часы на ATtiny2313, DS1307 и ЖКИ индикаторе 8*2 « схемопедия


Многие радиолюбители любят делать свои электронные часы, в этой статье я расскажу, как сделать свои электронные часы. В моих часах нет ничего экзотического, они просто показывают время и дату. Но в них есть одна особенность: они считают время даже тогда когда выключено основное питание, эту возможность нам даёт RTC микросхема DS1307. Основой часов является микроконтроллер ATtiny2313 и ЖК индикатор разрешением 8 на 2 (Восемь знакомест и две строки). Настройка времени осуществляется с помощью пяти тактовых кнопок. Ну и соответственно счётом времени занимается микросхема DS1307.

И так для сборки часов потребуется:

1. Микроконтроллер ATtiny2313 (в DIP корпусе, с любыми индексами) 1шт.

2. Микросхема DS1307 (в DIP корпусе) 1шт.

3. Кварц на 32768 Hz 1шт.

4. Кварц на 12 MHz 1шт.

5. Тактовые кнопки 6шт.

6. ЖК индикатор 8*2 (с HD44780 или другим совместимом контроллером) 1шт.

7. Панелька DIP-20 1шт.

8. Панелька DIP-8 1шт.

9. Резисторы 4,7 кОм 9шт.

10. Резистор 1 кОм 1шт.

11. Резистор 150 Ом 1шт.

12. Конденсатор электролитический 100мкФ 1шт.

13. Линейка штырьков PLS-40 1шт.

14. Текстолит размером 57мм на 37мм 1шт.

15. Транзистор КТ3102 1шт.

16. Динамик (любой) 1шт.

17. Батарея на 3 вольта 1шт.

18. Гнезда на плату однорядные PBS-40 1шт.

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

Почему схема не в sPlan? Да потому что рисовать большие схемы в нём жутко неудобно!

Часы я сделал на печатной плате размером 57мм на 37мм, поверх которой устанавливается ЖК индикатор. В общем, не буду голословным, а покажу фото:

Я специально использовал ЖК индикатор с боковым расположением контактов, чтобы сделать устройство максимально компактным. В итоге получилось очень хорошая конструкция: ЖК индикатор устанавливается наверх платы с помощью PLS штырьков. Вот так выглядит плата без ЖК индикатора:

Печатную плату делал лазерно-утюжной технологией, а рисунок печатной платы рисовал в программе Sprint Layout 4.0. Получилось очень красивая и хорошая печатная плата:

Кстати плату лудил сплавом розе в кипящей воде. Корпус кварца специально припаял к минусу питания, за счёт этого часы работают очень стабильно. Внимание, кварц паять не более двух секунд иначе он может сгореть. Желательно при пайке применять различные паяльные флюсы, но имейте в виду, что по окончании пайки плату надо тщательно промыть, чтобы смыть остатки флюса. Единственное, изначально я сделал рисунок печатной платы с ошибкой, поэтому ниже в файлах к статье публикую исправленную версию печатной платы. Фото платы с лицевой стороны:

Часы я поместил в небольшой корпус с прозрачным орг. стеклом с лицевой стороны, в итоге получилось очень компактные и хорошие часы. Вот фото:

Прошивку для часов писал на бейсике в среде BASCOM-AVR. По нажатию на первую кнопку “Инф” устройство показывает информацию о его разработчике. После прошивки микроконтроллера часов установите следующие фьюз-биты (в программе PonyProg2000):

Учтите, что после установки такой конфигурации фьюз-битов микроконтроллер будет работать только с подключённым кварцем! Если при включении часов на ЖК индикаторе вы увидите надпись “Ошибка 1” то проверьте подключение микросхемы DS1307, а также подключение батареи резервного питания.

И напоследок видео работы часов:

Скачать файлы к проекту

Автор: Яковлев Александр Вячеславович (г.Витебск, Беларусь)

Часы на ATtiny2313 и светодиодной матрице 8*8

Микроконтроллеры и Технологии каталог схем и прошивок

  • Вход на сайт
  • Создать аккаунт

Имя пользователя

Пароль

Запомнить меня

  • Забыли пароль?
  • Забыли логин?
  • Создать аккаунт
  • Создать аккаунт
  • Вход на сайт
  1. Главная|
  2. Устройства|
  3. AVR
Просмотров: 5281

Матрица ATtiny2313 Часы

Часы собранные на микроконтроллере ATtiny2313 и светодиодной матрице показывают время в 6-ти различных режимах.

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

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

Это хобби-проект, потому точность хода часов зависит лишь от калибровки внутреннего генератора контроллера. Я не использовал кварц в этом проекте, так как он занимал бы два нужных мне вывода ATtiny2313. Кварц может быть использован для повышения точности в альтернативном проекте (печатной плате).

Режимы отображения

Режим ЧЧ:ММ, прокрутка часов и минут, разделенными двоеточием.
Режим секунд, индикация только секунд.
Режим TIX, светодиодная матрица разделена на квадранты, верхние квадранты показывают часы в кодировке BCD (двоично десятичное кодирование).
Они представлены количеством точек для обозначения цифр. Нижние квадранты показывают минуты в BCD. Для 9:36 в верхней половине 0 точек + 9 точек и 3 точки + 6 точек в нижней половине.
Режим игры в кости, светодиодная матрица разделена на два набора «кубиков». Верхняя пара, показывает часы от 1 до 12, нижняя пара игральных костей показывает минуты с шагом 5 минут. Для 9:45 кости отобразят 9 (верхний) + 9 (нижний) (9*5=45 мин).
Двоичный режим, часы, минуты и секунды отображаются в двоичном виде в разных строках светодиодной матрицы. Строки 0 и 1 (сверху) часы, строка 2 — пустая, строки 3 и 4 — минуты, строка 5 — пустая, строки 6 и 7 — секунды.
Спящий режим используется чтобы продлить срок службы батареи, но из-за этого точность хода часов снижается. Сторожевой таймер 8 раз в секунду будит систему, чтобы обновить ход времени и определить нажата ли кнопка.

Схема устройства

ATtiny2313 работает на частоте 1 МГц, для этого нужно использовать следующие настройки битов конфигурации:

lfuse: 0x64
hfuse: 0xdf
efuse: 0xff

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

Видео работы устройства


Файлы к статье «Часы на ATtiny2313 и светодиодной матрице 8*8»
Описание:

Исходный код(Си), файлы прошивок микроконтроллера для матриц 788ASR и 1088AS

Размер файла: 9.77 KB Количество загрузок: 239 Скачать

Понравилась статья? Поделиться с друзьями:

  • Назад
  • Вперед

Часы на ATtiny13 / Хабр

Люблю светящиеся часы, и когда мне понадобились другие, я быстро собрал их на макетной плате ATtiny85, семисегментного индикатора TM1637 и часов реального времени DS1307. Однако при сборке меня не покидало ощущение, что можно обойтись и более простым контроллером. И это оказалось правдой.

Отказ от ответственности

Автор не имеет инженерного образования и работа не связана с микроконтроллерами, потому наверняка все так себе. К тому же нет оптимизации энергопотребления — мы, ардуино, не приняли!


Оборудование
В первую очередь я изучил доступные решения, и не нашел готовых примеров подключения двухпроводного DS1307 к ATtiny13. Потому что
RTC заменен на
на трехпроводной DS1302. Еще две ножки заняло подключение дисплея. На оставшихся полуногах Ресета была кнопка установки времени с помощью StackOverflow и пара резисторов.


Окончательное соединение элементов Соединение


схема (от staticmain)

По хорошему еще нужны резисторы 4,7-10К от ножек микроконтроллера PB1 и PB2 (вверху по центру) до плюса питания и конденсатор 0,1мкФ между плюсом и минус, но работает без них.

Программная часть
Количество ножек на ATtiny13 — не единственная проблема. Доступной памяти тоже мало — всего 1Кб, в результате чего готовые библиотеки не подходят. Решение состоит в использовании пакета MicroCore и компактной библиотеки для TM1637. Для DS1302 ничего не нашлось, поэтому пришлось создавать самому на основе этого репозитория. Полученный код часов доступен на Гитхаб .

Пошаговая инструкция для желающих повторить

  1. Список запчастей

    • Микроконтроллер ATtiny13
    • Дисплей на TM1637
    • Часы реального времени DS1302
    • Кварцевые часы с частотой 32768 Гц
    • Кнопка
    • A пара резисторов на 1К и 10К
    • Держатель батареи 3 вольта
    • Макет и перемычки или печатная плата

    Если брать на Али-Экспресс, то все уйдет около 100 руб.
  2. В качестве программиста — Arduino с загруженным в нее скетчем ArduinoISP, поставляемым в примерах. Если вы, как и я, используете Arduino Nano и пины 10-13 для подключения, то вам нужно раскомментировать строку 81
     #define USE_OLD_STYLE_WIRING 

    После загрузки скетча между ногами земли и сброса Arduino нужно поставить конденсатор на 10мФ, хотя некоторые шьются без него.


    Процесс прошивки ATtiny13 через слегка запыленную Arduino

  3. Чтобы Arduino IDE могла работать с ATtiny13, содержимое MicroCore добавляется в папку %Program Files (x86)%/Arduino/hardware. После этого в IDE в разделе Tools выбирается плата ATtiny13 с настройками: BOD отключен, LBO включен, Clock 9.6 internal osc.

     


  4. Исходники Git уже содержат необходимые библиотеки для работы с ds1302 и TM1637, которые настроены на работу по пинам (см. заголовочные файлы библиотек), соответственно картинку подключения, так что просто скачайте репозиторий и залейте часы .ino в ATtiny13. Прошивка займет почти все доступное место.


    Устройство в сборе на макетной плате. Зелеными точками обозначено место установки ATtiny для прошивки (очень плохо виден оранжевый плюс кабеля питания).

  5. Из-за особенности подключения кнопки, неточных номиналов резисторов и напряжения питания может потребоваться изменение порога срабатывания AnalogRead в clock. ino (26 строка).
  6. В планах было изготовить плату методом ЛУТ, но в процессе сломался принтер, поэтому проверка получившегося 9Плата 0005 была отложена на неопределенный срок, пока ее не исправят.

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

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

Бинарные часы ATTINY | Взломано tokeichun

Бинарные часы, сделанные с помощью ATTINY13, DS1302 и запрограммированные с помощью Arduino. Исходный код находится на GitHub.

Он основан на схемах RandomWatch, сделанных людьми из RANDOM DATA.

Нажатие на кнопку показывает время на несколько секунд (минуты слева и часы справа), затем показывает число и месяц (день слева и месяц справа).

Описание цепи

Я следовал схеме, предоставленной людьми из RANDOM DATA. Он в основном соединяет attiny с DS1302 и светодиодной матрицей через резисторы. Схема питается от батарейки типа «таблетка» 3,3 В (CR2032).

Поскольку основным ограничением часов является пространство, я решил построить схему на печатной плате, хотя и односторонней, так как мне было легче выгравировать ее. Файлы pcb также находятся на GitHub).

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

Так как я хотел другое расположение компонентов, чем у RandomWatch Я использовал Fritzing для создания файла платы для печати. Я предпочел его другому программному обеспечению, такому как KiCAD, потому что раньше использовал его для создания макетные схемы, и я не хотел тратить время на изучение нового инструмента.

Из-за ограничений по размеру и одностороннему травлению контакты ISP в часах не являются стандартными. Вот распиновка контактов часов:

Если эта распиновка не имеет смысла и вы используете Arduino в качестве интернет-провайдера, вы можете следовать проводке, описанной в этой инструкции. Единственными контактными разъемами, не расположенными непосредственно рядом с соответствующим контактом ATTINY, являются контакты сброса и заземления.

Программное обеспечение

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

Чтобы запрограммировать ATTINY13 с помощью Arduino, я использовал MicroCore от MCUdude.

Для загрузки кода в часы необходим программатор ISP, если у вас его нет, вы можете использовать Arduino в качестве программатора. Чтобы сэкономить заряд батареи, я заставил ATTINY использовать свои внутренние часы с частотой 128 кГц, поэтому в файле скетча Arduino ISP требуется небольшая модификация.

Эта строка: #define SPI_CLOCK (1000000/6) должна быть изменена на эту: #define SPI_CLOCK (128000/6) .

Я использовал Charlieplexing, чтобы иметь возможность включать и выключать 10 светодиодов с помощью 4 контактов ATTINY.

Можно использовать любой ATTINY (с такой же распиновкой), так как код соответствует ATTINY13 и не использует какие-либо функции, специфичные для чипа.

Материалы

Чтобы сделать часы, как показано, вам понадобится доступ к лазерному резцу. (для корпуса) и способ изготовления печатных плат.

Вам понадобится: Для этой конкретной сборки:
1 x ATTINY13 лазерный резак и прозрачный акрил 3 мм
1 x DS1302 4 винта 2 мм (высотой около 10 мм)
1 x 32,768 кГц кристалл 4 гайки 2 мм
1 кнопка Loctite (или любой суперклей)
1 батарейка CR2032 (без рисунка) ремешок в стиле НАТО
1 держатель батареи CR2032
2 x 8-контактных разъема IC (дополнительно для бесстрашных)
4 резистора по 100 Ом
10 светодиодов 3 мм
6 вилочных штифтов (без рисунка)
способ изготовления печатной платы
Arduino (для использования в качестве интернет-провайдера)
Механическая конструкция

Футляр состоит из трех частей прозрачного акрила, вырезанных лазером.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *