Site Loader

Часы за два дня на attiny2313 и ds1307 / Хабр

Мотив

Начну с того, что каждый человек живёт во времени, которое, к огромному сожалению, не возможно остановить. И раз мы живём в этом мире, то давайте следить за временем и не упускать ни минуты, тратя её впустую. Для этого я и сделал это чудесное устройство, по имени часы.

Начнём!

На улице встало солнце, я нарисовал плату и почесал на ксерокс, дабы напечатать плату

Дальше те, кто знают как изготавливаются платы поймут, что я перевёл рисунок утюгом на текстолит, протравил, залудил и т.д., а те, кто не в курсе — почитайте в интернете про изготовление плат методом ЛУТ — (Лазерно-утюжная технология).
результат я заснять забыл, но думаю, что качество будет видно и на готовой плате:

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

  • AtTiny2313 — 8ми битный микроконтроллер
  • ds1307 — микросхема-счётчик с неплохой точностью
  • часовой кварц на 32. 768кГц
  • 2 резистора на 10 КОм
  • 7 резисторов на 10 Ом
  • 1 резистор на 5.2 КОм
  • 4 резистора на 1 КОм
  • 4 транзистора КТ315 (их современные братья)
  • буззер на 5 вольт
  • 2 тактовые кнопки (угловой монтаж)
  • 4 индикатора (10011-BSR) общий анод
  • тантал на 47 микрофарад
  • и гнездо питания и угловым креплением (диаметр отверстия — 5.1мм, диаметр центр. контакта — 1.5мм)

И пускай вас не смущает длина этого списка, ведь мы собираем устройство на долгие года, и оно должно быть собрано на должном уровне!
Кто желает посмотреть на плату с другой стороны, вот фото:

Программа

Как и все устройства, часы нуждаются в программе. В данном случае программа написана на языке BASIC в BASCOM AVR. Этот язык очень удобный для программирования, так как код понятный, эффективный и занимает не много места на микроконтроллере. Писать программу с ноля я не стал, а взял исходник одной статьи сайта паяльник. Кто интересуется — найдёт, я же просто оставлю доработанный мною код тут:

$regfile = "attiny2313.dat"
$crystal = 8000000
Dim Count As Byte
Dim Number(4) As Integer
Dim Pointmem As Byte
Dim Point As Bit
Dim Mine As Byte
Dim Hour As Byte
Dim Seco As Byte
Config Porta.1 = Output
Porta.1 = 1
Waitms 10
Porta.1 = 0
Waitms 70
Porta.1 = 1
Waitms 10
Porta.1 = 0
Config Portb = Output
Config Porta.0 = Output
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.6 = Output
Config Sda = Portd.5
Config Scl = Portd.4
Config Pind.0 = Input
Portd.0 = 1
Config Pind.1 = Input
Portd.1 = 1
Config Timer1 = Timer , Prescale = 64
On Timer1 Awake:
Config Timer0 = Timer , Prescale = 64
On Ovf0 Refresh
Dig1 Alias Porta.0 : Dig2 Alias Portd.2 : Dig3 Alias Portd.3 : Dig4 Alias Portd.6
Enable Interrupts
Enable Ovf0
Enable Timer1
Start Timer1
Hour = 0
Mine = 0
If Pind.1 = 0 And Pind.0 = 0 Then
Porta.1 = 1
Waitms 100
Porta.
1 = 0 Hour = 0 Mine = 0 Seco = 1 Seco = Makebcd(seco) I2cstart I2cwbyte &HD0 I2cwbyte 0 I2cwbyte Seco I2cstop Mine = Makebcd(mine) I2cstart I2cwbyte &HD0 I2cwbyte 1 I2cwbyte Mine I2cstop Hour = Makebcd(hour) I2cstart I2cwbyte &HD0 I2cwbyte 2 I2cwbyte Hour I2cstop Waitms 1000 Porta.1 = 1 Waitms 10 Porta.1 = 0 End If Do I2cstart I2cwbyte &HD0 I2cwbyte &H00 I2cstart I2cwbyte &HD1 I2crbyte Seco , Ack I2crbyte Mine , Ack I2crbyte Hour , Nack I2cstop Seco = Makedec(seco) Mine = Makedec(mine) Hour = Makedec(hour) If Seco = 80 Then Seco = 10 Seco = Makebcd(seco) I2cstart I2cwbyte &HD0 I2cwbyte 0 I2cwbyte Seco I2cstop End If If Hour > 9 Then Number(1) = Hour / 10 Number(1) = Abs(number(1)) Else Number(1) = 20 End If Number(2) = Hour Mod 10 If Mine > 9 Then Number(3) = Mine / 10 Number(3) = Abs(number(3)) Else Number(3) = 0 End If Number(4) = Mine Mod 10 If Pind.1 = 0 Then Porta.1 = 1 Waitms 10 Porta.1 = 0 If Mine = 59 Then Mine = 0 Else Incr Mine End If Mine = Makebcd(mine) I2cstart I2cwbyte &HD0 I2cwbyte 1 I2cwbyte Mine I2cstop Else If Pind.
0 = 0 Then Porta.1 = 1 Waitms 10 Porta.1 = 0 If Hour = 23 Then Hour = 0 Else Incr Hour End If Hour = Makebcd(hour) I2cstart I2cwbyte &HD0 I2cwbyte 2 I2cwbyte Hour I2cstop End If End If Waitms 250 Loop Awake: If Point = 1 Then Porta.1 = 1 Waitus 10 Porta.1 = 0 End If Toggle Point Return Refresh: Reset Dig1 : Reset Dig2 : Reset Dig3 : Reset Dig4 Incr Count : If Count > 4 Then Count = 1 If Count = 2 And Point = 1 Then Pointmem = Number(2) + 10 Portb = Lookup(pointmem , Digits) Else Portb = Lookup(number(count) , Digits) End If Select Case Count Case 1 : Set Dig1 Case 2 : Set Dig2 Case 3 : Set Dig3 Case 4 : Set Dig4 End Select Return Digits: Data &B00101000 , &B01111011 , &B00110100 , &B00110010 , &B01100011 Data &B10100010 , &B10100000 , &B00101011 , &B00100000 , &B00100010 Data &B00001000 , &B01011011 , &B00010100 , &B00010010 , &B01000011 Data &B10000010 , &B10000000 , &B00001011 , &B00000000 , &B00000010 Data &B11111111

Прошиваем почти 2 килобайта кода в мк и наблюдаем как только-что ожившее устройство начало служить человеку.
Чесно сказать, я испытываю невероятное удовольствие от того, что могу создать нечто такое, что для многих далёкое и не понятное)

Так выглядит устройство без корпуса, корпус буду делать после написания статьи:

И так, часы готовы, а как они работают? Это я демонстрирую в первой половине этого видео (не прошу подписки или чего-то ещё, просто материал)

Заключение

Таким образом, за 2 дня я сделал устройство, которое покажет мне, сколько мне осталось заниматься одним делом и переходить к другому, когда пора идти, или начать что-то важное.
Ну а на этом всё, спасибо тем, кто дочитал до конца, успехов вам в ваших проектах, и как говорится: «треска вам, 47, и до встречи на других частотах! QRZ..»

Простые часы на attiny2313

Officia fore sunt nam elit do id aliqua in irure. Varias e ita quae expetendis qui ad tamen commodo transferrem hic se legam nostrud arbitrantur, consequat graviterque te incurreret, a veniam iis elit, lorem consectetur quamquam summis tempor, incididunt anim singulis eu pariatur aute ad deserunt graviterque. Quamquam sunt duis eu illum non magna quibusdam probant, ea nam velit fugiat quid ad magna litteris ita tamen quae. Proident e noster est fore incurreret eu exercitation hic mandaremus tamen de quibusdam graviterque, qui multos magna legam excepteur ea excepteur ipsum fugiat deserunt summis a sunt do an sint iudicem qui esse instituendarum fabulas quorum excepteur iis se a consectetur. Eiusmod eram litteris possumus.


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам.

Содержание:

  • Андрей Овчаров
  • Please turn JavaScript on and reload the page.
  • Простые часы на микроконтроллере Attiny2313. Схема и описание
  • Простые часы на микроконтроллере AVR
  • Простые часы на микроконтроллере
  • Часы на микроконтроллере AVR с DS1307
  • Простые часы на Attiny 2313
  • Очень простые часы на Atmega8 и семисегментном индикаторе

ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Простые часы и термометр на atmega 8

Андрей Овчаров


Порылся, оказалось память меня не обманула, и он действительно лежал там. Смотрю параметры на выходе: 5 V, mA. Вполне нормально для питания электронных часов, подумал я, и начал его ковырять. Делаем мощный сабвуфер, на головке 75 гдн, для аудиокомплекса компьютера. Диод Шоттки. Представляю вашему вниманию очень простые часы на МК Attiny Особо в них в тот момент не нуждался, но руки чесались что нибудь сделать на микроконтроллере, в плане освоения его работы.

Итак, меньше слов — больше дела. Всё необходимое, в т. Сразу оговорюсь, что для экспериментов купил индикаторы красного, зелёного и оранжевого цвета. Красный выигрывает по яркости, зато оранжевый смотрится просто замечательно! Ну что, собрали и проверили? Всё работает? Теперь встаёт вопрос о блоке питания. Порылся в закромах, нашёл небольшой тороидальный трансформатор, по внешнему виду ватт на Вроде бы сначала вопрос показался решённым, но замеряя напряжение во вторичке, вольтметр выдал мне 12,7 вольт.

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

Торик маленький, аккуратненький, пригодится ещё. Да и вдруг после этого жужжать начнёт. Сидя в раздумьях и крутя в руках трансформатор, у меня начал жаловаться телефон, мол разряжусь я скоро, подпитаться бы Вскрыл, включил, проверил — на выходе оказалось 5,07 вольт.

Теперь собираем всё это во что-нибудь подходящее по размерам, долго с корпусом не мучился, на глаза попалась пластмассовая мыльница — её и приспособил, правда получилось не совсем аккуратно, но зато работает, как часы :- Удачи в сборке, с вами был Fenix.

Все права защищены.


Please turn JavaScript on and reload the page.

Прорыв в сфере беспроводных технологий. Синтезатор на микросхеме NE В радиолюбительской литературе и на сайтах подобной тематики схемы часов на микроконтроллере встречаются очень часто. Наверно это связано как с тем, что часы достаточно необходимый прибор в доме каждого человека, так и с тем что написание программы для микроконтроллера не есть сложной задачей. Анализируя схемы часов на микроконтроллерах семейства AVR фирмы Atmel , видим, что большинство из них имеет в наличии часовой датчик — микросхему DS Да, использование датчика значительно упрощает задачу по реализации часов на микроконтроллере. Конечно, еще более упростить схему можно было бы применив ЖК дисплей, но мне более интересны LED дисплеи.

Задумал я к дню рождения любимой собрать часы. Выпаял со старой платы микроволновки семисегментный индикатор с двоеточием и полез.

Простые часы на микроконтроллере Attiny2313. Схема и описание

Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Мегапосты: Криминальный квест HR-истории Путешествия гика. Войти Регистрация. Часы за два дня на attiny и ds Компьютерное железо , DIY или Сделай сам Мотив Начну с того, что каждый человек живёт во времени, которое, к огромному сожалению, не возможно остановить. И раз мы живём в этом мире, то давайте следить за временем и не упускать ни минуты, тратя её впустую. Для этого я и сделал это чудесное устройство, по имени часы. На улице встало солнце, я нарисовал плату и почесал на ксерокс, дабы напечатать плату Дальше те, кто знают как изготавливаются платы поймут, что я перевёл рисунок утюгом на текстолит, протравил, залудил и т.

Простые часы на микроконтроллере AVR

Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Мегапосты: Криминальный квест HR-истории Путешествия гика. Войти Регистрация. Делаем сами простые часы за выходные Гаджеты Статья о том, как за выходные с нуля сделать простые электронные часы с использованием микроконтроллера.

Поиск новых сообщений в разделах Все новые сообщения Компьютерный форум Электроника и самоделки Софт и программы Общетематический. Простые часы на микроконтроллере ATtiny

Простые часы на микроконтроллере

Часы на микроконтроллере схема. Данные часы просто собрать за несколько часов самому. Схема питается от сети и имеет резерв питания. Так же данная схема часов подойдет для начинающих радиолюбителей. А вот и сама схема данных часов ниже:. Часы имеют 24 часовой формат отображения.

Часы на микроконтроллере AVR с DS1307

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

В радиолюбительской литературе и на сайтах подобной тематики схемы часов на микроконтроллере встречаются очень часто.

Простые часы на Attiny 2313

Логин или эл. Войти или Зарегистрироваться. Авторизация Логин или эл.

Очень простые часы на Atmega8 и семисегментном индикаторе

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

Схема и программа очень простых часов на микроконтроллере AVR с использованием микросхемы реального времени DS

Поиск новых сообщений в разделах Все новые сообщения Компьютерный форум Электроника и самоделки Софт и программы Общетематический. Простые часы на ATtiny Версия 1. Чародей, насколько точно идут Ваши часы? Можете показать фьюзы для Pony Prog? Есть ли печатка под СМД?

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


авр — ATmega — Почему заводской предделитель по умолчанию равен 8?

спросил

Изменено 6 лет, 7 месяцев назад

Просмотрено 2к раз

\$\начало группы\$

Почему ATmega (например, 328P или 644P) имеют CKDIV8 (или CLKPS = 0011 ) запрограммировано на заводе вместе с внутренним генератором 8 МГц по умолчанию?

Из документации 644P: 6.12.2 CLKPR — регистр предварительной шкалы часов , стр. 40:

Предохранитель CKDIV8 определяет начальное значение битов CLKPS. Если CKDIV8 не запрограммирован, биты CLKPS будут сброшены на «0000». Если запрограммировано CKDIV8, биты CLKPS сбрасываются в «0011», что дает коэффициент деления 8 при запуске. Эту функцию следует использовать, если выбранный источник синхронизации имеет более высокую частоту, чем максимальная частота устройства в текущих условиях эксплуатации. […] Прикладное программное обеспечение должно гарантировать, что выбран достаточный коэффициент деления, если выбранный источник синхронизации имеет более высокую частоту, чем максимальная частота устройства в текущих условиях работы. Устройство поставляется с запрограммированным предохранителем CKDIV8.

Это просто мера предосторожности, чтобы гарантировать, что тактовая частота ЦП не превышает, скажем, предела в 16 МГц при настройке MCU для работы с внешним генератором слишком высокой частоты (и забыв изменить CLKPS соответственно). Или есть другие причины?

  • avr
  • atmega
  • тактовая частота

\$\конечная группа\$

\$\начало группы\$

Обратите внимание на зависимость максимально допустимой тактовой частоты от напряжения питания: Например. 644PV может достигать частоты только 4 МГц при работе на 1,8 В (аналогично другим чипам)

Если бы контроллеры были запрограммированы на частоту 8 МГц по умолчанию, вы не смогли бы запрограммировать их в схеме, работающей при таком низком напряжении питания. 1 МГц — это безопасная частота по умолчанию, которую может достичь любой AVR при любом напряжении питания в пределах его спецификаций.

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

\$\конечная группа\$

\$\начало группы\$

Это для заводской совместимости и легкой миграции с ATmega163, которая имеет только внутренний RC-генератор с частотой 1 МГц (с другими тактовыми частотами, доступными через внешний кварц или часы).

Конечно, в этом десятилетии никто больше не использует и не должен использовать ‘163, но наследие продолжается.

\$\конечная группа\$

1

\$\начало группы\$

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

  • Устройства AVR требуют, чтобы были запрограммированы действительные часы. Если вы хотите использовать RC-генератор, вам не нужно добавлять кварц или внешний тактовый сигнал только для программирования устройства. Вывод: фьюз-биты должны быть запрограммированы для запуска микросхемы от RC-генератора с завода.
  • RC-генератор должен быть откалиброван по достаточно быстрому значению, чтобы его можно было использовать в целом, и при этом иметь достаточную точность. Atmel, вероятно, в какой-то момент решил, что оптимальным будет значение 8 МГц. Вывод: В качестве точки калибровки RC-генератора в большинстве устройств AVR выбрана частота 8 МГц.
  • Не все устройства могут работать на частоте 8 МГц при любом напряжении. Вывод: Atmel стандартизировал деление тактовой частоты на 8, что дает тактовую частоту 1 МГц, что безопасно для любого устройства.

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

\$\конечная группа\$

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

Двоичные часы с питанием от AVR

Двоичные часы с питанием от AVR

Патрик Тейт, глава HoA Mad Scientist

Лаборатория HoA, отдел ужасно поспешных проектов.

Мой первый проект по микроконтроллеру, сделанный как введение в мир микроконтроллеров в стиле «hello world». Это настоящие двоичные часы, которые получают импульсы питания и синхронизации от 3-вольтового трансформатора, извлеченного из стены. Сердцем схемы является микроконтроллер Atmel attiny2313. Я выбрал этот микроконтроллер именно из-за инструктируемой детализации программатора, который я мог собрать практически полностью из подручных деталей. Это настоящие двоичные часы (в отличие от двоично-десятичных) с тремя «цифрами», по одной для часов, минут и секунд. Есть две кнопки, снятые со старой механической клавиатуры-переключателя. Они продвигают цифру часов и минут. Предусмотрена сигнализация. Этот проект научил меня многому тому, как работают инженерные проекты с установленными сроками. Мне нужно было закончить проект к Рождеству, потому что я собирался подарить его моему не совсем крестному отцу Кевину. В итоге у меня нет фото строительства, а есть только итоговое фото. В конечном результате осталось много неиспользованного кода для функции затемнения, которая так и не была реализована, но работает достаточно хорошо.

Внутренние часы attiny2313 никоим образом не являются достаточно точными для использования в качестве часов реального времени, и использование кристалла казалось излишним для этого проекта. Однако каждый, кто получает электричество от электростанции, получает устойчивый сигнал со стены, будь то 50 или 60 Гц. Поскольку многие часы также получают сигналы времени от линии электропередач, обязательно, чтобы в любой день средняя частота составляла ровно 60 циклов в секунду. На выходе переменный ток, но простой диод преобразует его в необходимые импульсы постоянного тока. Отдельной проблемой является тот факт, что 2313 имеет в общей сложности 18 используемых контактов, один из которых зарезервирован для программирования. Для часов требуется вход для сигнала 60 Гц, еще два для кнопок и 17 для светодиодов, всего 20 контактов. Чтобы уменьшить необходимое количество выводов, я использовал технику, называемую мультиплексированием. При мультиплексировании одновременно используются только некоторые выходы или входы, но используемый набор переключается достаточно быстро, так что на наш взгляд кажется, что они включены одновременно. В этом проекте каждая цепочка светодиодов (часы, минуты и секунды) является отдельной, и одновременно горит только одна. Также одновременно активен только один переключатель, поэтому в проекте остается 6 свободных контактов.

Как показано на схеме, светодиоды секунд, минут и часов соединены вместе, при этом каждая цепочка имеет общий анод, а каждый катод подключен параллельно с эквивалентным катодом на других цепочках к штырю. Питание подается на каждую цепочку по очереди, и соответствующие контакты могут потреблять ток для включения определенных светодиодов. Дополнительный контакт предназначен для входа кнопки, а другой — для синхронизирующего импульса. Теоретически можно было бы использовать меньше пинов, но это усложнило бы программирование. Два дополнительных вывода использовались для вывода отладочной информации (не показаны). Один был настроен на инвертирование каждые секунды, другой — на каждые 60 Гц. Опять же, этот код был оставлен в финальной версии из-за спешки. Это никоим образом не вредит функциональности, и его удаление могло привести к неожиданному поведению. Ток ограничивался резистором 480 Ом на входном контакте для каждого бита цепочки светодиодов. Трансформатор был разобран и перепрофилирован для этого проекта. Обратите внимание, что в нем используется конструкция с двумя диодами с отводом по центру. Если бы в проекте использовался мостовой выпрямитель с четырьмя диодами, падение напряжения было бы больше из-за того, что используется вдвое больше диодов. Это означает, что работа одного диода от линии переменного тока приведет к более высокому напряжению, чем источник питания, что приведет к напряжению, превышающему VCC на входном контакте. В 2313 есть фиксирующие диоды, чтобы предотвратить повреждение устройства, но это все же не рекомендуется. Добавление второго диода или делителя напряжения решило бы проблему.

Дело представляет собой нечто вроде мэшапа в последнюю минуту. Изначально я планировал использовать проектную коробку от Radioshack, но тот, который я планировал использовать, немного расплавился, когда я поставил его на тостер, который использовал в качестве обогревателя в гаражной лаборатории. С тех пор я переместил лабораторию в подвал, но в то время у меня было меньше дня, чтобы закончить проект, поэтому я использовал то, что было под рукой. Передняя часть — это дно коробки для подарочных карт Radioshack, нижняя часть задней части — это розетка, а верхняя часть — это передняя часть коробки для запасных битов. Все это было окрашено в черный цвет и скреплено нечестивой смесью клея-расплава и JB Quik. Вся схема находится в распределительной коробке, а трансформатор и схема приклеены к стене эпоксидной смолой. Штепсельная вилка стандартного типа для ПК, снята с разряженного блока питания. Он держался достаточно хорошо, и хотя он довольно отвратительный, с переднего ракурса выглядит нормально.

alexxlab

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

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