Надёжные будильник на DS1302 RTC и Arduino UNO — сборка и код
Компоненты и материалы
| Компонент | Количество | Примечание |
|---|---|---|
| Модуль реального времени DS1302 (RTC) | 1 | С батарейкой CR2032 |
| Зуммер (пьезоизлучатель) | 1 | Активный или пассивный |
| LCD-дисплей 16×2 I2C (белый на синем) | 1 | Адрес 0x27 (типичный) |
| Arduino UNO | 1 | Любая совместимая плата |
| Матричная клавиатура 4×4 | 1 | Для ввода времени и будильника |
О проекте
Проект простого будильника на Arduino UNO. Это комбинация ранее изученных модулей: если что-то непонятно — можно обратиться к отдельным урокам по каждому модулю.
Необходимые модули
- Arduino UNO (или другая подходящая плата)
- Модуль RTC DS1302
- Матричная клавиатура 4×4
- LCD I2C-экран
- Модуль зуммера (или двухвыводной пьезоизлучатель)
Полезные ссылки на уроки по модулям:
- Настройка DS1302 RTC с клавиатурой + Arduino + LCD
- Простое использование DS1302 RTC с Arduino и LCD
- Arduino LCD I2C — простое использование и запись из Serial Monitor
- Arduino UNO + 4×4 Keypad Matrix + LCD I2C
- Использование зуммера/пьезоизлучателя с Arduino
Схема подключения
Схема подключения показана на изображении в разделе Schematics. Основные соединения:
- RTC DS1302: CLK → D2, DAT → D3, RST → D4
- Клавиатура 4×4: строки → D9, D10, D11, D12; столбцы → D5, D6, D7, D8
- LCD I2C: SDA → A4, SCL → A5, VCC → 5V, GND → GND
- Зуммер: плюс → D13, минус → GND
Библиотеки
- LiquidCrystal_I2C (или другая для вашего дисплея)
- Keypad (есть в менеджере библиотек Arduino IDE)
- VirtuabotixRTC для DS1302
Алгоритм работы
После подключения модулей на дисплее отображается текущая дата и время (или установленные ранее).
- Нажмите * — вход в настройку даты и времени RTC (пошаговый ввод: год, месяц, день, час, минута).
- Нажмите A — настройка будильника (час и минута).
- Нажмите B — деактивация будильника до срабатывания.
- Во время звонка нажмите любую кнопку для отключения.
Код хорошо прокомментирован, разбит на функции, понятен для начинающих.
Исходный код
Файл RTC_alarm_clock_LCD.ino доступен в разделе Code. Основные моменты:
- Используются библиотеки Keypad, Wire, VirtuabotixRTC, LiquidCrystal_I2C
- В
setup()инициализируются дисплей, клавиатура, RTC - В
loop()циклически опрашиваются клавиши, обновляется время на экране, проверяется срабатывание будильника - При срабатывании будильника звучит зуммер (чередование 1000/2000 Гц) и выводится «Get up !!!» до нажатия любой клавиши
- Настройка времени и будильника реализована через
waitForKey()с пошаговым вводом цифр
Схемы
Схема подключения (Fritzing/изображение) доступна в разделе Schematics.
Производственный процесс
- Панель управления полётным симулятором 2020 на Arduino Nano: LCD и CDI-дисплеи
- Arduino POV-часы: сборка дисплея на эффекте сохранения образа
- Ретро-часы на индикаторах Numitron с Arduino: просто, надёжно, экономно
- Слово-часы (Word Clock) на Arduino — DIY-часы с текстовой индикацией времени
- Часы реального времени на Arduino с расчётом времени намаза
- Создание пользовательских LED-часов с будильником — видно с 12 метров
- Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2"
- Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
- Цифровые часы на TM1637 с настройкой времени и будильником — прототип на Arduino Nano
- Вывод изображений на 1.17-дюймовый TFT LCD с Arduino UNO