Наверх
Проекты на Arduino

Навигация

Реклама


Популярное

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

Вряд ли вы, даже если сильно постараетесь, сможете найти где-то такой же широкий выбор микрофонов,...

Посевной календарь является руководством к действию для садоводов, цветоводов, огородников, так как...

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

Обратите внимание на то, что детский сад в наше время является необязательным. Обязательное в...

» » Часы на Arduino используя DS3231
Проголосовало: 26

Часы на Arduino используя DS3231

Категория: Arduino


Сегодня поговорим о часах на Arduino из-за того что эта тема очень востребованная. Часы будут обычные, без температуры, даты, просто обычные часы с установкой времени кнопками.

Для этого нам понадобится 7-сигментный индикатор на TM1637

7-сегментный индикатор на TM1637

И модуль часов реального времени DS3231

Модуль часов реального времени на DS3231

Индикаторы бывают разных размеров, работать будут оба, подключать его необходимо на два свободных выхода Arduino.

7-сегментный индикатор на TM1637 меньшего размера

Модуль часов подключается к I2C шине и только нога SQW подключается на нулевое прерывание, на UNO это вторая нога. На этом выходе генерируется сигнал с периодом в одну секунду, который дергает прерывание и мигают двоеточие на  индикаторе, то есть если его отключить – точки остановятся, не будут мигать.

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

 

Подключение модуля часов и 7-сегментного индикатора к Arduino

 

По поводу кода смысла рассказывать нет, только основное.

Тут вот к 6-й и 7-й ноге подключен индикатор.

// 7сигментный индикатор
#define CLK 6         
#define DIO 7

 

К 3-й 4-й 5-й подключены кнопки, можно задавать любые другие при необходимости все остальное менять нельзя.

// кнопки
#define keyHor 5 // Кнопка для настройки часов
#define keyMin 4 // Кнопка для настройки минут
#define keyPL  3 // Кнопка для для прибавления 1 к часам или минутам

 

Детальки на али:

Arduino UNO

Часы DS3231

Индикатор на TM1637
 


Видео подключения модуля часов и семисегментного индикатора к Arduino



 
Вернуться назад »

Комментарии

Сергей
Группа: Гости
Отличный пример работы с часами и кнопками. Я для старта повторил.
 
Есть небольшое уточнение.
Для включения SQW нужно в контрольный регистр записывать 0x40. Значение 0x80 ставит 1 в EOSC/ А он управляет генератором при отключении питания. В резудьтате получается, что часы замирают на времени отключения питания и начинают идти с него при возобновлении.
  • Нравится
  • 2
Юрий М.
Группа: Гости

Почему-то не сразу начинают идти. Индикатор не горит. Потом вдруг пойдут . 

  • Нравится
  • 0
Юрий М.
Группа: Гости

Продолжу собрано на ардуино нано. При подаче питания индикатор не работает. Если я его отключу на ардуине мигает лампочка с f 1 Герц. Если снова подключаю интикатор к ВКЛ.ардуине индикатор может начнёт или не начнёт показывать время.

  • Нравится
  • 0

Оставить комментарий

Имя:*
E-Mail:
Комментарий: