Часы на Arduino без модуля часов — с большим 4-разрядным индикатором

Часы на Arduino без модуля часов — отличное решение для проектов, где нужно считать время с момента включения питания, а внешний RTC-модуль (DS3231, DS1307) слишком дорог или избыточен. В этом проекте своими руками мы соберём простые, но яркие часы на большом четырёхразрядном семисегментном индикаторе с общим катодом, управлением тремя кнопками и точностью до секунды.

Часы на Arduino без модуля DS3231 — большой индикатор

Возможности проекта

  • Отсчёт времени с момента включения Arduino
  • Формат ЧЧ:ММ (автоматическое скрытие ведущего нуля)
  • Установка часов и минут тремя кнопками
  • Быстрая прокрутка при удержании
  • Яркий большой 4-разрядный индикатор (высота цифр ~25–30 мм)
  • Всего 8 токоограничивающих резисторов 220–330 Ом

Необходимые компоненты

  • Arduino Uno / Nano
  • Четырёхразрядный семисегментный индикатор с общим катодом (0.8–1 дюйм)
  • 8 резисторов 220–330 Ом
  • 3 тактовые кнопки
  • Макетная плата и провода

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

Катоды цифр:

  • 1-я цифра → D6
  • 2-я цифра → D9
  • 3-я цифра → D8
  • 4-я цифра → D12

Сегменты a–g + dp через резисторами 220–330 Ом:

  • a → D7, b → D13, c → D10, d → D5, e → D4, f → D2, g → D3, dp → D11

Кнопки (с подтяжкой к +5В):

  • Кнопка установки → A0
  • Кнопка + час → A1
  • Кнопка + минута → A2

Установка библиотеки

Скачайте и установите библиотеку Time — ссылка в описании видео и на сайте.

Готовый скетч

#include <TimeLib.h>

const byte digitPins[] = {6, 9, 8, 12};     // катоды цифр
const byte segmentPins[] = {7, 13, 10, 5, 4, 2, 3, 11}; // a b c d e f g dp

// Полный рабочий код в прикреплённом архиве ниже

Как пользоваться

  • Удерживайте кнопку A0 — вход в режим настройки
  • Кнопка A1 — прибавить час
  • Кнопка A2 — прибавить минуту
  • Отпустите A0 — сохранение и возврат к отсчёту

Заключение

Получились недорогие, яркие и полностью автономные часы без RTC-модуля. Идеально для таймеров полива, фотобудок, счётчиков времени работы устройства и любых проектов, где питание не отключается.

FAQ — Часы на Arduino без модуля часов

Сбивается ли время при отключении питания?

Да, отсчёт начинается с 00:00 при каждом включении. Для сохранения времени нужен RTC-модуль или батарейка на суперконденсаторе.

Можно использовать индикатор с общим анодом?

Да, нужно поменять логику в скетче: HIGH/LOW местами и подключить катоды к +5В через резисторы.

Почему нужны резисторы на каждый сегмент?

Без них можно сжечь сегменты или выходы Arduino. 220–330 Ом — безопасный и яркий режим.

Можно вывести секунды?

Да, добавьте мигание точкой или используйте 6-разрядный индикатор — код легко расширяется.

Сколько памяти занимает скетч?

На Arduino Uno — около 9 КБ (30 % Flash), остаётся много места.

Можно ли сделать 12-часовой формат?

Да, добавьте условие if (hour() > 12) hour()-12 и выводите AM/PM точкой.

Как сделать автосброс в 24:00?

В loop() добавьте: if (hour() == 23 && minute() == 59 && second() > 58) setTime(0,0,0,1,1,2000);

📁 Скачать примеры