Часы на 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 не будет опубликован. Обязательные поля помечены *