Будильник зворотного відліку на Arduino з дисплеєм Nokia 5110

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

Потребуються наступні комплектуючі:

Схема з'єднання елементів

Збираємо деталі в корпус 

І приступаємо до написання програми

У програмі 3 режими:

1) основний режим - табло (відображення будильників та індикацією залишкового часу ЧЧ:ММ:СС Д, миготінням відображається спрацьовування будильника + звуковий сигнал)

2) режим редагування вибраного будильника

3) режим установки часу

Ось картинки режимів роботи

Призначення клавіш клавіатури таке:

1, 2, 3 - вибір будильника поточного (виділяється білим на чорному)

4 - вхід у режим установки дати/часу

7, 9 - вибір наступного/попереднього параметра при редагуванні будильника та установці дати/часу

5, 0 - збільшення/зменшення параметра

6 - ОК

A - ESC

B -  вхід у режим редагування

C - включити поточний будильник

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

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

Top