Будильник с обратным отсчетом на Arduino с дисплеем Nokia 5110

Делаем будильник с обратным отсчетом на Arduino с дисплеем Nokia3110. Может быть запущено до 3 будильников, с однократным срабатыванием или в определенное время в выбранные дни недели

Потребуются следующие комплектующие:

Схема соединения элементов

Собираем детали в корпус 

И приступаем к написанию программы

В программе 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)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.