Делаем будильник с обратным отсчетом на Arduino с дисплеем Nokia3110. Может быть запущено до 3 будильников, с однократным срабатыванием или в определенное время в выбранные дни недели
Потребуются следующие комплектующие:
- контроллер Arduino Nano
- дисплей Nokia 5110
- клавиатура 4x4
- модуль часов реального времени DS3221
- динамик для будильника
- макетная плата
- корпус КР-606 ПС
Схема соединения элементов
Собираем детали в корпус
И приступаем к написанию программы
В программе 3 режима:
1) основной режим - табло (отображение будильников и индикацией оставшегося времени ЧЧ:ММ:СС Д, миганием отображается сработка будильника + звуковой сигнал)
2) режим редактирования выбранного будильника
3) режим установки времени
Вот картинки режимов работы
Назначение клавиш клавиатуры следующее:
1, 2, 3 - выбор будильника текущего (выделяется белым на черном)
4 - вход р режим установки даты/времени
7, 9 - выбор следующего/предыдущего параметра при редактировании будильника и установке даты/времени
5, 0 - увеличение/уменьшение параметра
6 - ОК
A - ESC
B - вход в режим редактирования
С - включить текущий будильник
D - отключить текущий будильник
Каждый будильник может быть 2 видов
1) однократный - установка даты и времени срабатывания
2) многократный - установки времени и дней недели
Выбор будильника для редактирования стрелками и клавишами 1, 2, 3 и далее клавишей E (Edit)
В режиме редактирования выбор редактируемого параметра стрелками влево и вправо,
выбранный параметр мигает, стрелками вверх и вниз изменяем значение параметра
Для каждого будильника массив из 15 параметров
alarms[i][0] - будильник включен (1) или выключен (0)
alarms[i][1] - час срабатывания будильника
alarms[i][2] - минута срабатывания будильника
alarms[i][3] - секунда срабатывания будильника
alarms[i][4] - вид будильника - однократный(0) или многократный(1)
alarms[i][5] - день даты срабатывания будильника
alarms[i][6] - месяц даты срабатывания будильника
alarms[i][7] - год даты срабатывания будильника
alarms[i][8] - alarms[i][14] - активность многократного будильника в дни недели пн - вск - активен(1) или неактивен(0)
Годы с 2015 - 2019 г. Продолжить период можно в программе - внести изменения
в массиве
unsigned int maxedit[15]={2,24,60,60,2,32,13,19,2,2,2,2,2,2,2};
поменять 7 элемент (19 - 2019 г) на большее значение
а также добавив данные в массиве
- количество дней по месяцам для каждого года
int daysformonth[5][13]={ {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31}, {0,31,28,31,30,31,30,31,31,30,31,30,31} }; // 2015 - 2019
В скетче используются библиотеки
Adafruit_GFX - для работы с дисплеем
Time, DS1307 - для работы с RTC
Архив со скетчем и библиотеками можно скачать по ссылке ниже. Данный скетч компилируемая в Arduino IDE 1.0.5
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
Arduino | Плата Arduino | Arduino Nano 3.0 | 1 | Поиск в магазине Отрон | ||
Nokia | дисплей | Nokia 5110 | 1 | Поиск в магазине Отрон | ||
клавиатура | клавиатура | матричная 4х4 | 1 | Поиск в магазине Отрон | ||
RTC | Модуль RTC | DS3221 | 1 | Поиск в магазине Отрон | ||
SP1 | динамик | 1 Вт 8 Ом | 1 | Поиск в магазине Отрон | ||
T1 | Биполярный транзистор | BC639 | 1 | Поиск в магазине Отрон | ||
R1 | резистор | 510 Ом | 1 | Поиск в магазине Отрон | ||
Скачать список элементов (PDF)
Прикрепленные файлы:
- Alarm_Nokia5110.zip (80 Кб)
- Keypad.zip (19 Кб)
Комментарии (8) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
Автор молодец. (Наверно и сам знает!)
compilation terminated.
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno
[Автор]