Слово-часы (Word Clock) на Arduino — DIY-часы с текстовой индикацией времени
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Arduino UNO (или bare ATmega328P) | 1 |
| RTC-модуль DS1307 (с батареей CR2032) | 1 |
| Сдвиговые регистры 74HC595 | 3 |
| Драйверы ULN2803A (Дарлингтон-сборки, 8 каналов) | 3 |
| LED-лента (белая, ~2 м) | 1 |
| Панельки DIP-16 (для 74HC595) | 3 |
| Панельки DIP-18 (для ULN2803A) | 3 |
| Блок питания 12В (адаптер или батарея) | 1 |
| Монтажная плата / текстолит | 1 |
| Акриловое стекло (прозрачное белое / матовое) для лицевой панели | 1 |
| Картон / молочное стекло / фанера для корпуса и антидиффузорных перегородок | 1 |
Инструменты
- Паяльник, припой, припойная паста
- Ножницы, канцелярский нож, клей, скотч
- Мультиметр для проверки цепей
ПО и библиотеки
- Arduino IDE
- Библиотека RTC (например,
RTClibот Adafruit)
О проекте
Слово-часы показывают время фразами: «IT IS TEN FIFTEEN», «IT IS HALF PAST THREE» и т.д. Управляет Arduino, время хранит DS1307 (автономное питание от батареи — годы работы). Настроил один раз — забыл. Даже если отключить питание, время не сбится.
Управление 22-ю слововыми сегментами через 3 сдвиговых регистра (74HC595) и 3 драйвера ULN2803A. Всего 5 пинов Arduino: 3 для цепочки сдвиговых регистров (Data, Clock, Latch) + 2 для I2C (RTC).
Шаг 1: Подготовка деталей
Список выше. LED-лента удобна: режется по меткам (каждые 3 LED), имеет клейкую основу. Для каждого слова вырезаем кусок ленты нужной длины. Минимальный сегмент — 3 LED.
Шаг 2: Монтаж электроники
Важно про ULN2803A: это драйверы с открытым коллектором (Darlington sink). Подключение:
- Аноды (+) всех LED-сегментов — к общему +12В.
- Катоды (-) каждого слова — к выходам ULN2803A (пины 11–18).
- Входы ULN2803A (пины 1–8) — к выходам Q0–Q7 сдвиговых регистров.
- Сдвиговые регистры каскадированы: Q7' → DS следующего.
Шаг 3: Корпус и антидиффузоры
- Вырезаем лицевую панель из картона/фанеры по размеру акрила.
- Наносим разметку слов (распечатанную или нарисованную).
- Клеим полоски картона (1.5 см) горизонтально между строками и вертикально между словами — образуются ячейки, изолирующие свет одного слова от соседей.
- Собираем «сэндвич»: задняя стенка → электроника → плата с LED-лентой → антидиффузоры → акрил с надписями.
Шаг 4: Подключение LED-сегментов
Все аноды объединяем в общую шину +12В. Катоды каждого слова выводим отдельным проводом к соответствующему выходу ULN2803A. Удобно использовать тонкую мгновенную проволоку.
Шаг 5: Программирование
Код на GitHub: rakshithbk/Word_clock. Основные функции:
#define— назначение пинов сдвигового регистра каждому слову.WriteLEDs()— сдвиг битов в регистры через Data/Clock/Latch.selfTest()— последовательное мигание всех слов для проверки.displayTime()— читает RTC, определяет активные слова, обновляет регистры.
Код хорошо прокомментирован. Адаптируйте #define под свою раскладку слов.
Шаг 6: Финальная сборка
- Установите платы управления в корпус.
- Подключите выводы слов к драйверам.
- Вставьте LED-плату в антидиффузоры.
- Приклейте акрил с надписями спереди.
- Сделайте отверстие закрепления на стене.
Готово! Эстетичные часы, которые говорят время словами.
Файлы проекта
- Код: GitHub
- Схема: см. раздел Schematics
- Архивы с печатными платами:
F4B9GO9IBYX12RN.zip,FMC93S0ICRXOKWF.zip
Производственный процесс
- Arduino POV-часы: сборка дисплея на эффекте сохранения образа
- Стильные настенные часы на четырех кольцах Adafruit Neopixel 60 LED и Arduino
- Часы реального времени на Arduino с расчётом времени намаза
- Создание пользовательских LED-часов с будильником — видно с 12 метров
- Итальянские словесные часы на Arduino Nano, NeoPixel, LCD и RTC
- Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
- Простой калькулятор на Arduino UNO — базовый проект для начинающих
- SerialDebug: Улучшение отладки Arduino с расширенным сериальным логированием
- Простой секундомер на Arduino с кнопкой и EEPROM
- Надёжные будильник на DS1302 RTC и Arduino UNO — сборка и код