Создание пользовательских LED-часов с будильником — видно с 12 метров
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Arduino UNO | 1 |
| Freetronics DMD Display | 1 |
| Модуль RTC (часы реального времени) | 1 |
| Тактовая кнопка (мгновенное действие) | 1 |
| Выключатель вкл/выкл | 1 |
Приложения и онлайн-сервисы
- Arduino IDE
О проекте
Описание
Этот проект предназначен для тех, кто хочет сделать большие часы, читаемые с расстояния 12 метров и более. Размер можно увеличить по желанию. Встроенный будильник может использоваться как обработчик событий — например, для автоматизированной системы полива сада или напоминания о еженедельной встрече, а также для управления любым устройством через реле.
Необходимые детали
- Дисплей Freetronics DMD
- Модуль реального времени для Arduino
- Зуммер (опционально — достаточно громкий, чтобы разбудить)
- Тактовая кнопка (мгновенное действие)
- 2 выключателя вкл/выкл (питание — опционально)
- Arduino UNO или совместимая плата
- Proto Shield для Arduino (опционально)
- Блок питания для Arduino
- Стабилизатор 5 В постоянного тока, 4–30 А (опционально для максимальной яркости — не нужен для обычной работы)
Сборка
Часть 1 — Электроника
- Подключите зуммер, кнопку сброса и переключатель будильника к макетной плате.
- Соедините один контакт каждого переключателя с землей (GND) и вывод GND зуммера — с GND Arduino (см. схему).
- Второй контакт переключателя будильника подключите к D2, кнопку сброса — к D3, зуммер — к D4.
- Подключите модуль RTC к Arduino согласно его типу (изучите документацию производителя — обычно следуйте схеме).
- Соедините DMDCON с Arduino и вставьте DMD.
- Для максимальной яркости DMD подключите источник 5 В к контактам High Brightness.
- При желании смонтируйте все детали на Proto Shield и соедините соответствующим образом.
Часть 2 — Программное обеспечение
Сначала установите библиотеку DMD (доступна по ссылке) в папку libraries.
Программу можно скачать с Prototyping Corner или внизу этой страницы. Она содержит базовые операции мастер-часов.
Настройка времени на модуле RTC: найдите строки 117–124 и установите текущее время. Раскомментируйте строку 124 и загрузите скетч в Arduino. Затем снова закомментируйте строку 124 и загрузите повторно. Если этого не сделать, RTC останется на заданном времени.
В строках 593 и 594 задайте время и дни срабатывания будильника. Строка 593 — день недели (номера соответствуют):
- 1 = Воскресенье
- 2 = Понедельник
- 3 = Вторник
- 4 = Среда
- 5 = Четверг
- 6 = Пятница
- 7 = Суббота
В строке 594 укажите время сработки в 24-часовом формате.
Дальнейшее развитие
Добавление дисплеев
Можно подключить несколько DMD-дисплеев для увеличения размера часов. Подробнее читайте в документации.
Добавление будильников
Для добавления будильников вставьте в скетч следующий код и вызовите функцию в основном цикле:
void CheckAlarm_ALARM_NO_() {
AlarmSet = digitalRead(AlarmSetPin);
Snooze = digitalRead(SnoozePin);
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
/* Срабатывание только в указанные дни. Измените числа на нужные:
1 = Воскресенье, 2 = Понедельник, 3 = Вторник, 4 = Среда,
5 = Четверг, 6 = Пятница, 7 = Суббота */
if(dayOfWeek == 2 || dayOfWeek == 3 || dayOfWeek == 4 || dayOfWeek == 5 || dayOfWeek == 6) {
if(hour == 18 && minute == 05) { // Время срабатывания (24-ч формат)
if(AlarmSet == LOW) { // Если будильник включен
Snooze = digitalRead(SnoozePin);
while(Snooze == HIGH) {
Snooze = digitalRead(SnoozePin);
// Действия при срабатывании
}
}
}
}
}
Производственный процесс
- Кукушка: история, мастерство и современная эволюция
- Arduino POV-часы: сборка дисплея на эффекте сохранения образа
- Ретро-часы на индикаторах Numitron с Arduino: просто, надёжно, экономно
- Слово-часы (Word Clock) на Arduino — DIY-часы с текстовой индикацией времени
- Часы реального времени на Arduino с расчётом времени намаза
- Сборка Bluetooth-робота-шпиона на Arduino с управлением с телефона
- FlickMote: жестовое IR-пульт для умного дома на Arduino 101 и ультразвуковом датчике
- DIY Arduino TV-B-Gone: универсальный пульт для выключения любого телевизора
- Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2"
- Надёжные будильник на DS1302 RTC и Arduino UNO — сборка и код