Делаем будильник с обратным отсчетом на Arduino с дисплеем Nokia3110. Может быть запущено до 3 будильников, с однократным срабатыванием или в определенное время в выбранные дни недели
Потребуются следующие комплектующие:
- контроллер Arduino Nano
- дисплей Nokia 5110
- клавиатура 4×4
- модуль часов реального времени 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
Плата ArduinoArduino Nano 3.01
Nokia
дисплейNokia 51101
клавиатура
клавиатураматричная 4х41
RTC
Модуль RTCDS32211
SP1
динамик1 Вт 8 Ом1
T1
Биполярный транзисторBC6391
R1
резистор510 Ом1
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- Alarm_Nokia5110.zip (80 Кб)
- Keypad.zip (19 Кб)