Будильник зворотного відліку на Arduino з дисплеєм Nokia 5110
Робимо будильник з зворотним відліком на 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 - вхід у режим редагування
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 |
Прикреплені файли:
- Alarm_Nokia5110.zip (80 Кб)
- Keypad.zip (19 Кб)