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

Сегодня поговорим о часах на 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

4 комментария к “Часы на Arduino используя DS3231”

  1. Юрий М.

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

  2. Юрий М.

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

  3. «Для включения SQW нужно в контрольный регистр записывать 0x40»

    Тогда уж 0х00 надо писать.

  4. Повторил на Atmega8, всё заработало. добавил только мигание точек. ПОсмотрю на точность и можно придумывать модель корпуса и разводить платку. Спасибо!

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

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

Adblock
detector