Инфоурок Информатика Научные работыАвтоматизированная система подачи звонков в школе на Arduino

Автоматизированная система подачи звонков в школе на Arduino

Скачать материал

Научно – практическая конференция

«Шаг в будущее-2019»

Россия, Забайкальский край, город Чита

МБОУ «Средняя общеобразовательная школа №47» г.Читы

 

 

 

 

 

Автоматизированная система подачи звонков в школе на Arduino

 

 

 

 

 

 

Автор: Белый Захар Анатольевич

учащийся 9 класса Б

МБОУ «СОШ №47» г.Читы

Научный руководитель: Михайлов Егор Иванович, учитель информатики и физики МБОУ СОШ №47 г.Читы (высшая категория)

 

 

 

г.Чита – 2019г.


Автоматизированная система подачи звонков в школе на Arduino

Белый Захар Анатольевич

Россия, Забайкальский край, город Чита

МБОУ «СОШ №47»

9 класс «Б»

 

Содержание

Аннотация. 3

План исследования. 6

Научная статья. 7

АСПЗ. 7

Основные технические характеристики устройства. 8

Практическая часть. 9

Список используемых компонентов: 9

Схема подключения. 9

Текст программы.. 10

Заключение. 2

Список используемой литературы.. 3

 

 

 


Автоматизированная система подачи звонков в школе на Arduino

Белый Захар Анатольевич

Россия, Забайкальский край, город Чита

МБОУ «СОШ №47»

9 класс «Б»

 

Аннотация

 

 

Механик – я человек, думающий при помощи гаечного ключа.


Леонард Луис Левинсон.

 

Проблема:  очень часто без внимания остается точное соблюдение регламента занятий согласно заранее запланированному расписанию. Ведения точного хронометража занятий отражается в правильно поставленном и реализованном уроке, соблюдения дисциплины и рационального использования времени участников учебного процесса. Поэтому актуальной задачей на сегодня является создание устройства для подачи звонков в учебных заведениях

Актуальность исследований: Для  нашей школы это устройство необходимо. Данный проект обязательно будет реализован в нашей школe т.к. после замены обычных вахтера в школах города на сотрудников ЧОП с 01.07.2018г. подавать звонки просто некому. В должностной инструкции сотрудника ЧОП, нет обязанности подавать звонок в образовательном учреждении.

Цель данной работы – это создание и дальнейшее совершенствование автоматизированная система подачи звонков в школе на Arduino (АСПЗ).

Поставленная цель включает в себя несколько задач:

1.      Анализ имеющейся информации по данному направлению;

2.      Сборка и отладка радиоуправляемой АСПЗ;

3.      Тестирование и модернизация получившейся АСПЗ;

4.      Проведение исследований и экспериментов.

5.      Внедрение и сопровождение АСПЗ на базе МБОУ СОШ №47.

Объект исследования: конструктивные и программные особенности автоматизированной системы подачи звонков в школе на Arduino;

Предмет исследования: автоматизированная система подачи звонков в школе на Arduino;

Методы исследования:

Теоретического уровня

Экспериментально-теоретического уровня:

  • изучение и обобщение имеющейся литературы, примеров радиоуправляемых автомоделей;
  • формализация модели;
  • анализ и синтез исходной информации и полученных результатов исследования.
  • гипотетический, выдвижение и проверка гипотез исследования;
  • моделирование АСПЗ;
  • экспериментальные исследования модели;

 

Гипотеза: в основе рабочей гипотезы лежит предположение о том, на основе комплекта для образовательной робототехники Arduino создать компактный, адаптивный комплекс подачи звонков и регламентирования учебного времени в МБОУ СОШ №47.

Научная новизна: разработана новая модель радиоуправляемой автомашины, повышенной проходимости, использование и дальнейшее совершенствование которой планируется применять в проведении спортивных соревнований по автомоделированию, а так же для нужд гражданской обороны (как инструмента заменяющего человека с случай физической невозможности присутствия или опасности для жизни и здоровья).

 Практическая значимость:

Основная цель данного проекта - это включать звонок в соответствии с расписанием школьных звонков в учебном заведении.

Использование автоматизированной системы подачи звонков в школе позволит:

1.  автоматизировать процесс подачи звуковых сигналов;

2. освободить человека(вахтера) от постоянного отслеживания времени подачи звонков;

3. исключить человеческий фактор (забыли подать звонок, подали позже/раньше и т.д.)

За счет адаптивного интерфейса может использоваться в разных ОО с разным расписанием учебных занятий.

Работа состоит из трех глав. В первой главе рассмотрены вопросы, касающиеся описания модели(схемы) прибора и его конструктивные особенности. Представлена  схематика устрайства и принцип действия.

Во второй главе, описан процесс работы АСПЗ, приведен код программы.

В третьей главе представлено описание результатов моделирования, приведен анализ экспериментов.


Автоматизированная система подачи звонков в школе на Arduino

Белый Захар Анатольевич

Россия, Забайкальский край, город Чита

МБОУ «СОШ №47»

9 класс «Б»

План исследования

  1. Определение проблемы и вопроса подлежащего исследованию;
  2. Методы исследования: определение источников информации и анализ полученных данных по выбранному вопросу исследования, выявление основных особенностей изучаемого вопроса, определение ключевых понятий исследования.
  3. Ход исследования:
    • Постановка темы исследования, выявление актуальности исследования;
    • Определение круга вопросов, связанных с темой исследования;
    • Выявление источников информации, необходимых для проведения исследования;
    • Изучение источников информации, выявление базовых понятий, терминов;
    • Разбор  и анализ полученной информации, выбор основных категорий исследования;
    • Разработка и составления плана исследовательской работы;
    • Обработка и анализ информации;
    • Написание исследовательской работы;
    • Оформление плана и порядка выступления.
    • Защита в рамках НПК.

Автоматизированная система подачи звонков в школе на Arduino

Белый Захар Анатольевич

Россия, Забайкальский край, город Чита

МБОУ «СОШ №47»

9 класс «Б»

Научная статья

 

АСПЗ

https://pp.userapi.com/c846021/v846021947/1b1cfd/1mUuCTPGvnY.jpg

С точки зрения последующего использования любое изобретение следует оценивать не только по его сути (что именно изобретено), но и по тому, как оно может и будет служить человеку. Вторая часть указанной задачи зачастую куда сложнее первой. 


Н. Винер

 

Устройство АСПЗ разработано специально для модернизации существующей и построения новой системы автоматической подачи звонков в учебных заведениях.

            Данное устройство-автомат предназначено для автоматической подачи звонков по расписанию в институтах, колледжах, школах и других учебных заведениях, является специализированным автоматическим таймером работающим по заданному расписанию. Его подключение не требует изменений в существующей системе подачи звонков, устройство может легко подключаться к любым типам систем.


Устройство способно работать заданному расписанию. Расписание представляет собой совокупность занятий. Каждое занятие формируется путем установки времени начала и времени окончания.  В специализированной программе на каждый день недели можно установить свое расписание. Переключение расписаний производится автоматически, в зависимости от дня недели. Если дню недели не задать расписания, в этот день устройство подавать звонки не будет.



Основные технические характеристики устройства

·        Отображение текущего времени и расписания;

·        программируемое соответствие расписания дню недели;

·        цифровая настройка хода часов для обеспечения повышенной;

·        сохранение возможности подачи звонков вручную;

·        возможность автоматического перехода на летнее время и обратно;

·        питание – сеть 220/110 В, 50/60 Гц;

·        максимально допустимый коммутируемый ток нагрузки при напряжении ~220 В (cos>=0,95) – 10 А (более 30 звонков громкого боя);

·        максимально допустимое напряжение нагрузки - ~242 В, 50 Гц

·        габариты, мм, не более – 90х70х60.


Практическая часть

В моём проекте все очень просто:

модуль времени следит за временем, на arduino uno стоит скетч, в котором есть расписание , когда подходит определенное время, то ардуино дает сигнал на реле. реле замыкается и мы слышим звонок.  lcd дисплей сделан для удобства настройки.

 

Список используемых компонентов:

  • Аккумулятор – для подачи питания на arduino
  • Arduino Uno - для управления АПЗ
  • Реле – для подачи звонков
  • LCD дисплей MT-16S2H
  • RTC realtime clock — часы реального времени
  • динамик


Схема подключения

Di1Nutspl2k.jpgDi1Nutspl2k.jpg

https://pp.userapi.com/c846021/v846021947/1b1cfd/1mUuCTPGvnY.jpg

 

 

 

Вставить фото устройства

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Текст программы

 

 


#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <EEPROM.h>
#include <iarduino_RTC.h>
iarduino_RTC _RTC1(RTC_DS1307);

LiquidCrystal_I2C _lcd1(0x3F, 16, 2);
int _dispTempLength1=0;
boolean _isNeedClearDisp1;

const byte _menuParametrsArray[] PROGMEM = {1, 3, 2, 0, 0, 0, 3, 4, 1, 4, 3, 0, 2, 3, 1, 0, 0, 0, 2, 4, 1, 4, 1, 0, 3, 1, 1, 0, 0, 0, 4, 5, 1, 8, 2, 0};
bool _menuValueArray_bool[1];
const bool _menuConstantValuesArray_bool[] PROGMEM = {1};
int _menuValueArray_int[2];
const int _menuConstantValuesArray_int[] PROGMEM = {1, 59, 23, 0};
const char _flprogMenuNameString1[] PROGMEM = "UST MINUTE";
const char _flprogMenuNameString2[] PROGMEM = "ON OFF RINGING";
const char _flprogMenuNameString3[] PROGMEM = "UST HOUR";
const char _flprogMenuNameString4[] PROGMEM = "ON";
const char _flprogMenuNameString5[] PROGMEM = "OFF";
const char* const _flprogMenuStringsArray[] PROGMEM = { _flprogMenuNameString1, _flprogMenuNameString2, _flprogMenuNameString3, _flprogMenuNameString4, _flprogMenuNameString5};
struct _menuItemStricture {
int startInArrayIndex;
};
struct _menuMainStricture {
byte startIndex;
byte stopIndex;
bool isSwitchMenuAroundRing;
_menuItemStricture currentItem;
};
_menuItemStricture _MenuItems[3];
_menuMainStricture _MainMenus[1];
bool _gtv1;
bool _gtv2;
bool _RTCAlO3 = 0;
bool _RTCAlO71 = 0;
bool _RTCAlO9 = 0;
bool _RTCAlO90 = 0;
bool _RTCAlO28 = 0;
bool _RTCAlO47 = 0;
bool _RTCAlO53 = 0;
int _disp2oldLength = 0;
bool _RTCAlO2 = 0;
bool _RTCAlO70 = 0;
bool _RTCAlO21 = 0;
bool _RTCAlO89 = 0;
bool _RTCAlO27 = 0;
String _MenuBlock_52101255_MNO;
String _MenuBlock_52101255_VNO;
bool _MenuBlock_52101255_OEIS = 0;
bool _MenuBlock_52101255_OMUIS = 0;
bool _MenuBlock_52101255_OMDIS = 0;
bool _MenuBlock_52101255_OVUIS = 0;
bool _MenuBlock_52101255_OVDIS = 0;
unsigned long _MenuBlock_52101255_VUDST = 0UL;
unsigned long _MenuBlock_52101255_VUDSPT = 0UL;
byte _MenuBlock_52101255_VUDSM = 0;
int _MenuBlock_52101255_VUDPT = 0;
bool _bounseInputD5S = 0;
bool _bounseInputD5O = 0;
unsigned long _bounseInputD5P = 0UL;
bool _RTCAlO46 = 0;
bool _RTCAlO63 = 0;
bool _RTCAlO1 = 0;
bool _RTCAlO82 = 0;
bool _RTCAlO20 = 0;
bool _RTCAlO88 = 0;
bool _RTCAlO39 = 0;
bool _bounseInputD3S = 0;
bool _bounseInputD3O = 0;
unsigned long _bounseInputD3P = 0UL;
bool _RTCAlO45 = 0;
bool _trgrt1 = 0;
bool _trgrt1I = 0;
bool _RTCAlO62 = 0;
bool _RTCAlO13 = 0;
bool _RTCAlO81 = 0;
bool _RTCAlO19 = 0;
bool _RTCAlO38 = 0;
bool _bounseInputD4S = 0;
bool _bounseInputD4O = 0;
unsigned long _bounseInputD4P = 0UL;
bool _RTCAlO74 = 0;
bool _RTCAlO12 = 0;
bool _RTCAlO80 = 0;
bool _RTCAlO31 = 0;
bool _RTCAlO50 = 0;
bool _RTCAlO56 = 0;
bool _RTCAlO5 = 0;
bool _RTCAlO73 = 0;
bool _RTCAlO11 = 0;
bool _tim1I = 0;
bool _tim1O = 0;
unsigned long _tim1P = 0UL;
bool _RTCAlO24 = 0;
bool _RTCAlO92 = 0;
bool _RTCAlO30 = 0;
bool _changeNumber1_Out = 0;
int _changeNumber1_OLV;
int _disp4oldLength = 0;
bool _RTCAlO49 = 0;
bool _RTCAlO66 = 0;
bool _RTCAlO4 = 0;
bool _RTCAlO72 = 0;
bool _RTCAlO23 = 0;
bool _RTCAlO91 = 0;
String _RTC1_GetTime2_StrOut;
bool _RTCAlO42 = 0;
bool _RTCAlO48 = 0;
bool _RTCAlO65 = 0;
bool _RTCAlO16 = 0;
bool _RTCAlO84 = 0;
bool _RTCAlO22 = 0;
bool _RTCAlO41 = 0;
int _disp1oldLength = 0;
bool _RTCAlO58 = 0;
bool _RTCAlO64 = 0;
bool _RTCAlO77 = 0;
bool _RTCAlO15 = 0;
bool _RTCAlO83 = 0;
bool _RTCAlO34 = 0;
bool _RTCAlO40 = 0;
bool _RTCAlO57 = 0;
bool _RTCAlO8 = 0;
bool _RTCAlO76 = 0;
bool _RTCAlO14 = 0;
bool _RTCAlO33 = 0;
bool _RTCAlO52 = 0;
bool _RTCAlO69 = 0;
bool _RTCAlO7 = 0;
bool _RTCAlO75 = 0;
bool _RTCAlO26 = 0;
bool _RTCAlO94 = 0;
bool _RTCAlO32 = 0;
bool _RTCAlO51 = 0;
bool _RTCAlO68 = 0;
bool _RTCAlO6 = 0;
bool _RTCAlO87 = 0;
bool _RTCAlO25 = 0;
bool _RTCAlO93 = 0;
bool _RTCAlO44 = 0;
bool _trgt1 = 0;
bool _trgt1I = 0;
bool _RTCAlO61 = 0;
bool _RTCAlO67 = 0;
bool _bounseInputD2S = 0;
bool _bounseInputD2O

·                                  

= 0;
unsigned long _bounseInputD2P = 0UL;
bool _RTCAlO18 = 0;
bool _RTCAlO86 = 0;
bool _RTCAlO37 = 0;
bool _RTCAlO43 = 0;
bool _RTCAlO60 = 0;
bool _RTCAlO79 = 0;
bool _RTCAlO17 = 0;
bool _RTCAlO85 = 0;
String _RTC1_GetTime1_StrOut;
bool _RTCST_Ost1 = 0;
bool _RTCAlO36 = 0;
int _disp3oldLength = 0;
bool _RTCAlO55 = 0;
bool _RTCAlO59 = 0;
bool _RTCAlO10 = 0;
bool _RTCAlO78 = 0;
bool _RTCST_Ost2 = 0;
bool _RTCAlO29 = 0;
bool _RTCAlO35 = 0;
bool _changeNumber2_Out = 0;
int _changeNumber2_OLV;
bool _RTCAlO54 = 0;
void setup()
{
Wire.begin();
delay(10);
if(((readByteFromEEPROM(0, 0, 0x0))) != 111) {
(updateByteToEEPROM(0, 0, 0x0, (111)));
(updateIntegerToEEPROM(2, 0, 0x0, (0)));
(updateIntegerToEEPROM(4, 0, 0x0, (12)));
}
_RTC1.begin();
_RTC1.period(1);
pinMode(2, INPUT);
digitalWrite(2, HIGH);
pinMode(3, INPUT);
digitalWrite(3, HIGH);
pinMode(4, INPUT);
digitalWrite(4, HIGH);
pinMode(5, INPUT);
digitalWrite(5, HIGH);
pinMode(13, OUTPUT);

_lcd1.init();
_lcd1.backlight();
_bounseInputD4O = digitalRead(4);
_bounseInputD3O = digitalRead(3);
_bounseInputD5O = digitalRead(5);
_bounseInputD2O = digitalRead(2);
_MenuItems[0].startInArrayIndex = 0;
_MenuItems[1].startInArrayIndex = 12;
_MenuItems[2].startInArrayIndex = 24;
_MainMenus[0].startIndex = 1;
_MainMenus[0].isSwitchMenuAroundRing = 1;
_MainMenus[0].stopIndex = 3;
_MainMenus[0].currentItem = _MenuItems[0];
_menuValueArray_int[0] = (readIntegerFromEEPROM(2, 0, 0x0));
_menuValueArray_bool[0] = (readBooleanFromEEPROM(1, 0, 0x0));
_menuValueArray_int[1] = (readIntegerFromEEPROM(4, 0, 0x0));
}
void loop()
{bool _tempVariable_bool;
int _tempVariable_int;
byte _tempVariable_byte;
if (_isNeedClearDisp1) {_lcd1.clear(); _isNeedClearDisp1= 0;}

bool _bounceInputTmpD4 = (digitalRead (4));

if (_bounseInputD4S) 
{
if (millis() >= (_bounseInputD4P + 40)) 
{_bounseInputD4O= _bounceInputTmpD4; _bounseInputD4S=0;}
}
else
{
if (_bounceInputTmpD4 != _bounseInputD4O )
{_bounseInputD4S=1; _bounseInputD4P = millis();} 

bool _bounceInputTmpD3 = (digitalRead (3));

if (_bounseInputD3S) 
{
if (millis() >= (_bounseInputD3P + 40)) 
{_bounseInputD3O= _bounceInputTmpD3; _bounseInputD3S=0;}
}
else
{
if (_bounceInputTmpD3 != _bounseInputD3O )
{_bounseInputD3S=1; _bounseInputD3P = millis();} 

bool _bounceInputTmpD5 = (digitalRead (5));

if (_bounseInputD5S) 
{
if (millis() >= (_bounseInputD5P + 40)) 
{_bounseInputD5O= _bounceInputTmpD5; _bounseInputD5S=0;}
}
else
{
if (_bounceInputTmpD5 != _bounseInputD5O )
{_bounseInputD5S=1; _bounseInputD5P = millis();} 

bool _bounceInputTmpD2 = (digitalRead (2));

if (_bounseInputD2S) 
{
if (millis() >= (_bounseInputD2P + 40)) 
{_bounseInputD2O= _bounceInputTmpD2; _bounseInputD2S=0;}
}
else
{
if (_bounceInputTmpD2 != _bounseInputD2O )
{_bounseInputD2S=1; _bounseInputD2P = millis();} 


//
Плата:1
bool _tmp1 = !(_bounseInputD2O);
if (_tmp1) { if (! _trgt1I) _trgt1 = ! _trgt1; } 
_trgt1I = _tmp1; 
if (_gtv1)

_RTC1.gettime();
_RTCAlO21 = 1;
if (_RTC1.Hours != 13) { _RTCAlO21 = 0;}
if (_RTC1.minutes != 30) { _RTCAlO21 = 0;}
} else {_RTCAlO21 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO57 = 1;
if (_RTC1.Hours != 8) { _RTCAlO57 = 0;}
if (_RTC1.minutes != 0) { _RTCAlO57 = 0;}
} else {_RTCAlO57 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO77 = 1;
if (_RTC1.Hours != 13) { _RTCAlO77 = 0;}
if (_RTC1.minutes != 30) { _RTCAlO77 = 0;}
} else {_RTCAlO77 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO1 = 1;
if (_RTC1.Hours != 8) { _RTCAlO1 = 0;}
if (_RTC1.minutes != 0) { _RTCAlO1 = 0;}
} else {_RTCAlO1 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO22 = 1;
if (_RTC1.Hours != 14) { _RTCAlO22 = 0;}
if (_RTC1.minutes != 0) { _RTCAlO22 = 0;}
} else {_RTCAlO22 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO58 = 1;
if (_RTC1.Hours !=
8) { _RTCAlO58 = 0;}
if (_RTC1.minutes != 25)

·                                  

{ _RTCAlO58 = 0;}
} else {_RTCAlO58 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO78 = 1;
if (_RTC1.Hours != 13) { _RTCAlO78 = 0;}
if (_RTC1.minutes != 55) { _RTCAlO78 = 0;}
} else {_RTCAlO78 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO2 = 1;
if (_RTC1.Hours != 8) { _RTCAlO2 = 0;}
if (_RTC1.minutes != 30) { _RTCAlO2 = 0;}
} else {_RTCAlO2 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO3 = 1;
if (_RTC1.Hours != 8) { _RTCAlO3 = 0;}
if (_RTC1.minutes != 35) { _RTCAlO3 = 0;}
} else {_RTCAlO3 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO23 = 1;
if (_RTC1.Hours != 14) { _RTCAlO23 = 0;}
if (_RTC1.minutes != 5) { _RTCAlO23 = 0;}
} else {_RTCAlO23 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO59 = 1;
if (_RTC1.Hours != 8) { _RTCAlO59 = 0;}
if (_RTC1.minutes != 30) { _RTCAlO59 = 0;}
} else {_RTCAlO59 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO79 = 1;
if (_RTC1.Hours != 14) { _RTCAlO79 = 0;}
if (_RTC1.minutes != 0) { _RTCAlO79 = 0;}
} else {_RTCAlO79 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO4 = 1;
if (_RTC1.Hours != 9) { _RTCAlO4 = 0;}
if (_RTC1.minutes != 5) { _RTCAlO4 = 0;}
} else {_RTCAlO4 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO24 = 1;
if (_RTC1.Hours != 14) { _RTCAlO24 = 0;}
if (_RTC1.minutes != 35) { _RTCAlO24 = 0;}
} else {_RTCAlO24 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO60 = 1;
if (_RTC1.Hours != 8) { _RTCAlO60 = 0;}
if (_RTC1.minutes != 55) { _RTCAlO60 = 0;}
} else {_RTCAlO60 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO80 = 1;
if (_RTC1.Hours != 14) { _RTCAlO80 = 0;}
if (_RTC1.minutes != 30) { _RTCAlO80 = 0;}
} else {_RTCAlO80 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO5 = 1;
if (_RTC1.Hours != 9) { _RTCAlO5 = 0;}
if (_RTC1.minutes != 10) { _RTCAlO5 = 0;}
} else {_RTCAlO5 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO25 = 1;
if (_RTC1.Hours != 14) { _RTCAlO25 = 0;}
if (_RTC1.minutes != 45) { _RTCAlO25 = 0;}
} else {_RTCAlO25 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO61 = 1;
if (_RTC1.Hours != 9) { _RTCAlO61 = 0;}
if (_RTC1.minutes != 0) { _RTCAlO61 = 0;}
} else {_RTCAlO61 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO81 = 1;
if (_RTC1.Hours != 14) { _RTCAlO81 = 0;}
if (_RTC1.minutes != 35) { _RTCAlO81 = 0;}
} else {_RTCAlO81 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO6 = 1;
if (_RTC1.Hours != 9) { _RTCAlO6 = 0;}
if (_RTC1.minutes != 40) { _RTCAlO6 = 0;}
} else {_RTCAlO6 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO26 = 1;
if (_RTC1.Hours != 15) { _RTCAlO26 = 0;}
if (_RTC1.minutes != 15) { _RTCAlO26 = 0;}
} else {_RTCAlO26 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO62 = 1;
if (_RTC1.Hours != 9) { _RTCAlO62 = 0;}
if (_RTC1.minutes != 25) { _RTCAlO62 = 0;}
} else {_RTCAlO62 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO82 = 1;
if (_RTC1.Hours != 15) { _RTCAlO82 = 0;}
if (_RTC1.minutes != 0) { _RTCAlO82 = 0;}
} else {_RTCAlO82 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO7 = 1;
if (_RTC1.Hours != 9) { _RTCAlO7 = 0;}
if (_RTC1.minutes != 50) { _RTCAlO7 = 0;}
} else {_RTCAlO7 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO27 = 1;
if (_RTC1.Hours != 15) { _RTCAlO27 = 0;}
if (_RTC1.minutes != 20) { _RTCAlO27 = 0;}
} else {_RTCAlO27 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO63 = 1;
if (_RTC1.Hours != 9) { _RTCAlO63 = 0;}
if (_RTC1.minutes != 35) { _RTCAlO63 = 0;}
} else {_RTCAlO63 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO83 = 1;
if (_RTC1.Hours != 15) { _RTCAlO83 = 0;}
if (_RTC1.minutes != 10) { _RTCAlO83 = 0;}
} else {_RTCAlO83 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO8 = 1;
if (_RTC1.Hours != 10) { _RTCAlO8 = 0;}
if (_RTC1.minutes != 20) { _RTCAlO8 = 0;}
} else {_RTCAlO8 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO28 = 1;
if (_RTC1.Hours != 15) { _RTCAlO28 = 0;}
if (_RTC1.minutes != 50) { _RTCAlO28 = 0;}
} else {_RTCAlO28 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO64 = 1;
if (_RTC1.Hours != 10) { _RTCAlO64 = 0;}
if (_RTC1.minutes != 0) { _RTCAlO64 = 0;}
} else {_RTCAlO64 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO84 = 1;
if (_RTC1.Hours !=
15) { _RTCAlO84 = 0;}
if (_RTC1.minu

·                                  

tes != 40) { _RTCAlO84 = 0;}
}
else {_RTCAlO84 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO9 = 1;
if (_RTC1.Hours != 10) { _RTCAlO9 = 0;}
if (_RTC1.minutes != 25) { _RTCAlO9 = 0;}
}
else {_RTCAlO9 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO29 = 1;
if (_RTC1.Hours != 16) { _RTCAlO29 = 0;}
if (_RTC1.minutes != 0) { _RTCAlO29 = 0;}
}
else {_RTCAlO29 = 0;}
if (_gtv2)
{
 
_
RTC1.gettime();
_
RTCAlO65 = 1;
if (_RTC1.Hours != 10) { _RTCAlO65 = 0;}
if (_RTC1.minutes != 5) { _RTCAlO65 = 0;}
}
else {_RTCAlO65 = 0;}
if (_gtv2)
{
 
_
RTC1.gettime();
_
RTCAlO85 = 1;
if (_RTC1.Hours != 15) { _RTCAlO85 = 0;}
if (_RTC1.minutes != 45) { _RTCAlO85 = 0;}
}
else {_RTCAlO85 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO10 = 1;
if (_RTC1.Hours != 10) { _RTCAlO10 = 0;}
if (_RTC1.minutes != 55) { _RTCAlO10 = 0;}
}
else {_RTCAlO10 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO30 = 1;
if (_RTC1.Hours != 16) { _RTCAlO30 = 0;}
if (_RTC1.minutes != 30) { _RTCAlO30 = 0;}
}
else {_RTCAlO30 = 0;}
if (_gtv2)
{
 
_
RTC1.gettime();
_
RTCAlO66 = 1;
if (_RTC1.Hours != 10) { _RTCAlO66 = 0;}
if (_RTC1.minutes != 30) { _RTCAlO66 = 0;}
}
else {_RTCAlO66 = 0;}
if (_gtv2)
{
 
_
RTC1.gettime();
_
RTCAlO86 = 1;
if (_RTC1.Hours != 16) { _RTCAlO86 = 0;}
if (_RTC1.minutes != 10) { _RTCAlO86 = 0;}
}
else {_RTCAlO86 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO11 = 1;
if (_RTC1.Hours != 11) { _RTCAlO11 = 0;}
if (_RTC1.minutes != 0) { _RTCAlO11 = 0;}
}
else {_RTCAlO11 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO31 = 1;
if (_RTC1.Hours != 16) { _RTCAlO31 = 0;}
if (_RTC1.minutes != 35) { _RTCAlO31 = 0;}
}
else {_RTCAlO31 = 0;}
if (_gtv2)
{
 
_
RTC1.gettime();
_
RTCAlO67 = 1;
if (_RTC1.Hours != 10) { _RTCAlO67 = 0;}
if (_RTC1.minutes != 35) { _RTCAlO67 = 0;}
}
else {_RTCAlO67 = 0;}
if (_gtv2)
{
 
_
RTC1.gettime();
_
RTCAlO87 = 1;
if (_RTC1.Hours != 16) { _RTCAlO87 = 0;}
if (_RTC1.minutes != 20) { _RTCAlO87 = 0;}
}
else {_RTCAlO87 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO12 = 1;
if (_RTC1.Hours != 11) { _RTCAlO12 = 0;}
if (_RTC1.minutes != 30) { _RTCAlO12 = 0;}
}
else {_RTCAlO12 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO32 = 1;
if (_RTC1.Hours != 17) { _RTCAlO32 = 0;}
if (_RTC1.minutes != 5) { _RTCAlO32 = 0;}
}
else {_RTCAlO32 = 0;}
if (_gtv2)
{
 
_
RTC1.gettime();
_
RTCAlO68 = 1;
if (_RTC1.Hours != 11) { _RTCAlO68 = 0;}
if (_RTC1.minutes != 0) { _RTCAlO68 = 0;}
}
else {_RTCAlO68 = 0;}
if (_gtv2)
{
 
_
RTC1.gettime();
_
RTCAlO88 = 1;
if (_RTC1.Hours != 16) { _RTCAlO88 = 0;}
if (_RTC1.minutes != 45) { _RTCAlO88 = 0;}
}
else {_RTCAlO88 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO13 = 1;
if (_RTC1.Hours != 11) { _RTCAlO13 = 0;}
if (_RTC1.minutes != 45) { _RTCAlO13 = 0;}
}
else {_RTCAlO13 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO33 = 1;
if (_RTC1.Hours != 17) { _RTCAlO33 = 0;}
if (_RTC1.minutes != 10) { _RTCAlO33 = 0;}
}
else {_RTCAlO33 = 0;}
if (_gtv2)
{
 
_
RTC1.gettime();
_
RTCAlO69 = 1;
if (_RTC1.Hours != 11) { _RTCAlO69 = 0;}
if (_RTC1.minutes != 15) { _RTCAlO69 = 0;}
}
else {_RTCAlO69 = 0;}
if (_gtv2)
{
 
_
RTC1.gettime();
_
RTCAlO89 = 1;
if (_RTC1.Hours != 16) { _RTCAlO89 = 0;}
if (_RTC1.minutes != 50) { _RTCAlO89 = 0;}
}
else {_RTCAlO89 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO14 = 1;
if (_RTC1.Hours != 12) { _RTCAlO14 = 0;}
if (_RTC1.minutes != 15) { _RTCAlO14 = 0;}
}
else {_RTCAlO14 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO34 = 1;
if (_RTC1.Hours != 17) { _RTCAlO34 = 0;}
if (_RTC1.minutes != 40) { _RTCAlO34 = 0;}
}
else {_RTCAlO34 = 0;}
if (_gtv2)
{
 
_
RTC1.gettime();
_
RTCAlO70 = 1;
if (_RTC1.Hours != 11) { _RTCAlO70 = 0;}
if (_RTC1.minutes != 40) { _RTCAlO70 = 0;}
}
else {_RTCAlO70 = 0;}
if (_gtv2)
{
 
_
RTC1.gettime();
_
RTCAlO90 = 1;
if (_RTC1.Hours != 17) { _RTCAlO90 = 0;}
if (_RTC1.minutes != 15) { _RTCAlO90 = 0;}
}
else {_RTCAlO90 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO15 = 1;
if (_RTC1.Hours != 12) { _RTCAlO15 = 0;}
if (_RTC1.minutes != 20) { _RTCAlO15 = 0;}
}
else {_RTCAlO15 = 0;}
if (_gtv1)
{
 
_
RTC1.gettime();
_
RTCAlO35 = 1;
if (_RTC

·                                  

1.Hours != 17) { _RTCAlO35 = 0;}
if (_RTC1.minutes != 40) { _RTCAlO35 = 0;}
} else {_RTCAlO35 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO71 = 1;
if (_RTC1.Hours != 11) { _RTCAlO71 = 0;}
if (_RTC1.minutes != 45) { _RTCAlO71 = 0;}
} else {_RTCAlO71 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO91 = 1;
if (_RTC1.Hours != 17) { _RTCAlO91 = 0;}
if (_RTC1.minutes != 20) { _RTCAlO91 = 0;}
} else {_RTCAlO91 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO16 = 1;
if (_RTC1.Hours != 12) { _RTCAlO16 = 0;}
if (_RTC1.minutes != 50) { _RTCAlO16 = 0;}
} else {_RTCAlO16 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO36 = 1;
if (_RTC1.Hours != 18) { _RTCAlO36 = 0;}
if (_RTC1.minutes != 15) { _RTCAlO36 = 0;}
} else {_RTCAlO36 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO72 = 1;
if (_RTC1.Hours != 12) { _RTCAlO72 = 0;}
if (_RTC1.minutes != 10) { _RTCAlO72 = 0;}
} else {_RTCAlO72 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO92 = 1;
if (_RTC1.Hours != 17) { _RTCAlO92 = 0;}
if (_RTC1.minutes != 45) { _RTCAlO92 = 0;}
} else {_RTCAlO92 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO17 = 1;
if (_RTC1.Hours != 12) { _RTCAlO17 = 0;}
if (_RTC1.minutes != 55) { _RTCAlO17 = 0;}
} else {_RTCAlO17 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO73 = 1;
if (_RTC1.Hours != 12) { _RTCAlO73 = 0;}
if (_RTC1.minutes != 15) { _RTCAlO73 = 0;}
} else {_RTCAlO73 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO93 = 1;
if (_RTC1.Hours != 17) { _RTCAlO93 = 0;}
if (_RTC1.minutes != 50) { _RTCAlO93 = 0;}

_RTC1.gettime();
_RTCAlO18 = 1;
if (_RTC1.Hours != 13) { _RTCAlO18 = 0;}
if (_RTC1.minutes != 20) { _RTCAlO18 = 0;}
} else {_RTCAlO18 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO74 = 1;
if (_RTC1.Hours != 12) { _RTCAlO74 = 0;}
if (_RTC1.minutes != 45) { _RTCAlO74 = 0;}
} else {_RTCAlO74 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO94 = 1;
if (_RTC1.Hours != 18) { _RTCAlO94 = 0;}
if (_RTC1.minutes != 15) { _RTCAlO94 = 0;}
} else {_RTCAlO94 = 0;}
if (_gtv1)

_RTC1.gettime();
_RTCAlO19 = 1;
if (_RTC1.Hours != 12) { _RTCAlO19 = 0;}
if (_RTC1.minutes != 20) { _RTCAlO19 = 0;}
} else {_RTCAlO19 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO75 = 1;
if (_RTC1.Hours != 12) { _RTCAlO75 = 0;}
if (_RTC1.minutes != 50) { _RTCAlO75 = 0;}
} else {_RTCAlO75 = 0;}
if (( (( (_RTCAlO77) || (_RTCAlO78) || (_RTCAlO79) || (_RTCAlO80) || (_RTCAlO81) || (_RTCAlO82) || (_RTCAlO83) || (_RTCAlO84) || (_RTCAlO85) || (_RTCAlO86) || (_RTCAlO87) || (_RTCAlO88) || (_RTCAlO89) || (_RTCAlO90) || (_RTCAlO91) || (_RTCAlO92) || (_RTCAlO93) || (_RTCAlO94) )) || (( (_RTCAlO57) || (_RTCAlO58) || (_RTCAlO59) || (_RTCAlO60) || (_RTCAlO61) || (_RTCAlO62) || (_RTCAlO63) || (_RTCAlO64) || (_RTCAlO65) || (_RTCAlO66) || (_RTCAlO67) || (_RTCAlO68) || (_RTCAlO69) || (_RTCAlO70) || (_RTCAlO71) || (_RTCAlO72) || (_RTCAlO73) || (_RTCAlO74) || (_RTCAlO75) || (_RTCAlO76) )) || (( (_RTCAlO21) || (_RTCAlO22) || (_RTCAlO23) || (_RTCAlO24) || (_RTCAlO25) || (_RTCAlO26) || (_RTCAlO27) || (_RTCAlO28) || (_RTCAlO29) || (_RTCAlO30) || (_RTCAlO31) || (_RTCAlO32) || (_RTCAlO33) || (_RTCAlO34) || (_RTCAlO35) || (_RTCAlO36) )) || (( (_RTCAlO1) || (_RTCAlO2) || (_RTCAlO3) || (_RTCAlO4) || (_RTCAlO5) || (_RTCAlO6) || (_RTCAlO7) || (_RTCAlO8) || (_RTCAlO9) || (_RTCAlO10) || (_RTCAlO11) || (_RTCAlO12) || (_RTCAlO13) || (_RTCAlO14) || (_RTCAlO15) || (_RTCAlO16) || (_RTCAlO17) || (_RTCAlO18) || (_RTCAlO19) || (_RTCAlO20) )) )) { if (_trgrt1I) { _trgrt1 = 0;} else {_trgrt1 = 1; _trgrt1I = 1;} } else {_trgrt1 = 0; _trgrt1I = 0;}; 
if(_trgrt1) {_tim1O = 1; _tim1I = 1;} else { if(_tim1I) {_tim1I = 0; _tim1P = millis();} else { if (_tim1O) {if ( _isTimer(_tim1P, 5000)) _tim1O = 0;}}}
if (_gtv1)

_RTC1.gettime();
_RTCAlO20 = 1;
if (_RTC1.Hours != 13) { _RTCAlO20 = 0;}
if (_RTC1.minutes != 20) { _RTCAlO20 = 0;}
} else {_RTCAlO20 = 0;}
if (_gtv2)

_RTC1.gettime();
_RTCAlO76 = 1;
if (_RTC1.Hours !=
13) { _RTCAlO76 = 0;}
if (_RTC1.minutes != 20) { _RTCAlO76 = 0;}
} else {_RTCAlO76 = 0;}
if (0)

_RT

·                                  

C1.gettime();
_RTCAlO37 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO37 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO37 = 0;}
} else {_RTCAlO37 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO38 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO38 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO38 = 0;}
} else {_RTCAlO38 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO39 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO39 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO39 = 0;}
} else {_RTCAlO39 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO40 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO40 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO40 = 0;}
} else {_RTCAlO40 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO41 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO41 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO41 = 0;}
} else {_RTCAlO41 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO42 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO42 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO42 = 0;}
} else {_RTCAlO42 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO43 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO43 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO43 = 0;}
} else {_RTCAlO43 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO44 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO44 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO44 = 0;}
} else {_RTCAlO44 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO45 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO45 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO45 = 0;}
} else {_RTCAlO45 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO46 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO46 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO46 = 0;}
} else {_RTCAlO46 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO47 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO47 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO47 = 0;}
} else {_RTCAlO47 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO48 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO48 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO48 = 0;}
} else {_RTCAlO48 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO49 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO49 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO49 = 0;}
} else {_RTCAlO49 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO50 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO50 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO50 = 0;}
} else {_RTCAlO50 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO51 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO51 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO51 = 0;}
} else {_RTCAlO51 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO52 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO52 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO52 = 0;}
} else {_RTCAlO52 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO53 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO53 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO53 = 0;}
} else {_RTCAlO53 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO54 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO54 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO54 = 0;}
} else {_RTCAlO54 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO55 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO55 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO55 = 0;}
} else {_RTCAlO55 = 0;}
if (0)

_RTC1.gettime();
_RTCAlO56 = 1;
if (_RTC1.Hours != (0)) { _RTCAlO56 = 0;}
if (_RTC1.minutes != (0)) { _RTCAlO56 = 0;}
} else {_RTCAlO56 = 0;}
if (_changeNumber1_Out) {_changeNumber1_Out = 0;} else {_tempVariable_int = (_menuValueArray_int[1]);
if (_tempVariable_int != _changeNumber1_OLV) {_changeNumber1_OLV = _tempVariable_int; _changeNumber1_Out = 1;}
}
if (_changeNumber1_Out)
{ if (!(_RTCST_Ost1))
{
_RTC1.settime(-1, -1, ((_menuValueArray_int[1])), -1, -1, -1, -1);
}}
else
{ _RTCST_Ost1 = 0;}
if (_trgt1) {
_tempVariable_bool = 1;
if ( ! _MenuBlock_52101255_OEIS ) {_MenuBlock_52101255_OEIS = 1;

_tempVariable_byte = pgm_read_byte(&_menuParametrsArray[((_MainMenus[0].currentItem ).startInArrayIndex)+10]);
_MenuBlock_52101255_MNO = _readStringFromProgmem ((char*)pgm_read_word(&(_flprogMenuStringsArray[_tempVariable_byte - 1])));
_MenuBlock_52101255_VNO = _menuOutputValueString (0);
} else {
_tempVariable_bool = 0;
if (_MenuBlock_52101255_OEIS){
_MenuBlock_52101255_OEIS = 0;
_menuUpdateToEEpromItems();
}
_MenuBlock_52101255_MNO = "";
_MenuBlock_5210125

·                                  

5_VNO = "";
}
if(0) { if ( ! _MenuBlock_52101255_OMUIS) {_MenuBlock_52101255_OMUIS = 1;if (_tempVariable_bool){ _menuUpEvents(0);
_menuUpdateToEEpromItems();
}}} else {_MenuBlock_52101255_OMUIS = 0;}
if(!(_bounseInputD3O)) { if ( ! _MenuBlock_52101255_OMDIS) {_MenuBlock_52101255_OMDIS = 1;if (_tempVariable_bool){ _menuDownEvents(0);
_menuUpdateToEEpromItems();
}}} else {_MenuBlock_52101255_OMDIS = 0;}
if(!(_bounseInputD4O)) { if ( ! _MenuBlock_52101255_OVUIS) {_MenuBlock_52101255_OVUIS = 1; if (_tempVariable_bool){ _valueUpEvents(0); _MenuBlock_52101255_VUDST = millis();} }if (_tempVariable_bool){
if (_MenuBlock_52101255_VUDSM == 0) { if (_isTimer(_MenuBlock_52101255_VUDST , 2000 )) {_MenuBlock_52101255_VUDSM = 1; _MenuBlock_52101255_VUDSPT = millis(); _MenuBlock_52101255_VUDPT = 500;}} else { if (_MenuBlock_52101255_VUDSM == 1) { if (_isTimer(_MenuBlock_52101255_VUDST , 4000 )) {_MenuBlock_52101255_VUDSM = 2;_MenuBlock_52101255_VUDPT = 250; } } if (_isTimer(_MenuBlock_52101255_VUDSPT , _MenuBlock_52101255_VUDPT )) { _valueUpEvents(0); _MenuBlock_52101255_VUDSPT = millis();} }
}} else {_MenuBlock_52101255_OVUIS = 0; if( ! ( !(_bounseInputD5O))){_MenuBlock_52101255_VUDSM = 0; }}
if(!(_bounseInputD5O)) { if ( ! _MenuBlock_52101255_OVDIS) {_MenuBlock_52101255_OVDIS = 1; if (_tempVariable_bool){ _valueDownEvents(0); _MenuBlock_52101255_VUDST = millis();}} if (_tempVariable_bool){
if (_MenuBlock_52101255_VUDSM == 0) { if (_isTimer(_MenuBlock_52101255_VUDST , 2000 )) {_MenuBlock_52101255_VUDSM = 1; _MenuBlock_52101255_VUDSPT = millis(); _MenuBlock_52101255_VUDPT = 500;}} else { if (_MenuBlock_52101255_VUDSM == 1) { if (_isTimer(_MenuBlock_52101255_VUDST , 4000 )) {_MenuBlock_52101255_VUDSM = 2;_MenuBlock_52101255_VUDPT = 250; } } if (_isTimer(_MenuBlock_52101255_VUDSPT , _MenuBlock_52101255_VUDPT )) { _valueDownEvents(0); _MenuBlock_52101255_VUDSPT = millis();} }
}} else {_MenuBlock_52101255_OVDIS = 0; if( ! ( !(_bounseInputD4O))){_MenuBlock_52101255_VUDSM = 0; }}
if (_trgt1) {
_dispTempLength1 = ((_MenuBlock_52101255_MNO)).length();
if (_disp1oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor(int((16 - _dispTempLength1)/2), 0);
_lcd1.print((_MenuBlock_52101255_MNO));
} else {
if (_disp1oldLength > 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;} 
}
if (_changeNumber2_Out) {_changeNumber2_Out = 0;} else {_tempVariable_int = (_menuValueArray_int[0]);
if (_tempVariable_int != _changeNumber2_OLV) {_changeNumber2_OLV = _tempVariable_int; _changeNumber2_Out = 1;}
}
if (_changeNumber2_Out)
{ if (!(_RTCST_Ost2))
{
_RTC1.settime(-1, ((_menuValueArray_int[0])), -1, -1, -1, -1, -1);
}}
else
{ _RTCST_Ost2 = 0;}
if (_trgt1) {
_dispTempLength1 = ((_MenuBlock_52101255_VNO)).length();
if (_disp2oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp2oldLength = _dispTempLength1;
_lcd1.setCursor(int((16 - _dispTempLength1)/2), 1);
_lcd1.print((_MenuBlock_52101255_VNO));
} else {
if (_disp2oldLength > 0) {_isNeedClearDisp1 = 1; _disp2oldLength = 0;} 
}
if (!(_trgt1)) {
_dispTempLength1 = ((_RTC1_GetTime1_StrOut)).length();
if (_disp4oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp4oldLength = _dispTempLength1;
_lcd1.setCursor(int((16 - _dispTempLength1)/2), 0);
_lcd1.print((_RTC1_GetTime1_StrOut));
} else {
if (_disp4oldLength > 0) {_isNeedClearDisp1 = 1; _disp4oldLength = 0;} 
}
_RTC1_GetTime1_StrOut = _RTC1.gettime("H:i:s");
if (!(_trgt1)) {
_dispTempLength1 = ((_RTC1_GetTime2_StrOut)).length();
if (_disp3oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp3oldLength = _dispTempLength1;
_lcd1.setCursor(int((16 - _dispTempLength1)/2), 1);
_lcd1.print((_RTC1_GetTime2_StrOut));
} else {
if (_disp3oldLength > 0) {_isNeedClearDisp1 = 1; _disp3oldLength = 0;} 
}
_RTC1_GetTime2_StrOut = _RTC1.gettime("D");
_gtv2 = ((_RTC1_GetTime2_StrOut).equalsIgnoreCase(String("Thu")));
_gtv1 = ( (((_RTC1_GetTime2_StrOut).equalsIgnoreCase(String("Mon")))) || (((_RTC1_G

·                                  

etTime2_StrOut).equalsIgnoreCase(String("Tue")))) || (((_RTC1_GetTime2_StrOut).equalsIgnoreCase(String("Wed")))) || (((_RTC1_GetTime2_StrOut).equalsIgnoreCase(String("Fri")))) || (((_RTC1_GetTime2_StrOut).equalsIgnoreCase(String("Sat")))) );
digitalWrite(13, _tim1O);

}
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}
String _readStringFromProgmem (char 
*string)
{
String result = String("");
while (pgm_read_byte(string)!='\0')
{
result=result+ char(pgm_read_byte(string));
string++;
}
return result;
}
void _menuUpEvents (byte menuIndex)
{
byte tempIndex = pgm_read_byte(&_menuParametrsArray[((_MainMenus[menuIndex]).currentItem).startInArrayIndex]);
byte parIndex = pgm_read_byte(&_menuParametrsArray[ (((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+5]);
byte parentStartIndex;
byte parentStopIndex;
if (parIndex == 0) {parentStartIndex = (_MainMenus[menuIndex]).startIndex; parentStopIndex = (_MainMenus[menuIndex]).stopIndex;}
else { parentStartIndex = pgm_read_byte(&_menuParametrsArray[( (_MenuItems[parIndex - 1]).startInArrayIndex)+3]);
parentStopIndex = pgm_read_byte(&_menuParametrsArray[( (_MenuItems[parIndex-1]).startInArrayIndex)+4]); }
if (tempIndex == parentStartIndex) {if((_MainMenus[menuIndex]).isSwitchMenuAroundRing) {(_MainMenus[menuIndex]).currentItem = _MenuItems[parentStopIndex -1]; return;} else{return;}}
(_MainMenus[menuIndex]).currentItem = _MenuItems[tempIndex - 2];
return;
}
void _menuDownEvents (byte menuIndex)
{
byte tempIndex = pgm_read_byte(&_menuParametrsArray[((_MainMenus[menuIndex]).currentItem).startInArrayIndex]);
byte parIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+5]);
byte parentStartIndex;
byte parentStopIndex;
if (parIndex == 0) {parentStartIndex = (_MainMenus[menuIndex]).startIndex; parentStopIndex = (_MainMenus[menuIndex]).stopIndex;}
else { parentStartIndex = pgm_read_byte(&_menuParametrsArray[( (_MenuItems[parIndex-1]).startInArrayIndex)+3]);
parentStopIndex = pgm_read_byte(&_menuParametrsArray[((_MenuItems[parIndex-1]).startInArrayIndex)+4]); }
if (tempIndex == parentStopIndex) {if((_MainMenus[menuIndex]).isSwitchMenuAroundRing) {(_MainMenus[menuIndex]).currentItem = _MenuItems[parentStartIndex -1]; return;} else{return;}}
(_MainMenus[menuIndex]).currentItem = _MenuItems[tempIndex];
return;
}
void _valueUpEvents (byte menuIndex)
{
byte valIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+2]);
byte itemType = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+1]);
byte indexMax = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+6]);
byte indexStep = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+8]);
if(itemType ==1) {_menuValueArray_bool[valIndex - 1 ] = 1; return;}
if (itemType == 3) {if (! indexMax == 0) { if ( ! (pgm_read_word(&_menuConstantValuesArray_int[indexMax -1]) > _menuValueArray_int[valIndex -1])) {return;} }
_menuValueArray_int[valIndex -1] = _menuValueArray_int[valIndex -1] + (pgm_read_word(&_menuConstantValuesArray_int[indexStep -1])); }
}
void _valueDownEvents (byte menuIndex)
{

byte valIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+2]);
byte itemType = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+1]);
byte indexMin = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+7]);
byte indexStep = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+8]);
if(itemType ==1) {_menuValueArray_bool[valIndex -1] = 0; return;}
if (itemType == 3) { if (!

·                                  

indexMin == 0) { if ( ! ((pgm_read_word(&_menuConstantValuesArray_int[indexMin - 1])) < _menuValueArray_int[valIndex - 1])) {return;}} 
_menuValueArray_int[valIndex - 1] = _menuValueArray_int[valIndex - 1] - (pgm_read_word(&_menuConstantValuesArray_int[indexStep - 1])); }
}
String _menuOutputValueString (byte menuIndex)
{
byte itemType = pgm_read_byte(&_menuParametrsArray[ (((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+1]);
byte valIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+2]);
byte indexMin = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+7]);
byte indexMax = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+6]);
if( valIndex == 0){ return "";}
byte convFormat = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+9]);
if(itemType == 1) { return _convertBoolean(itemType, convFormat, valIndex, indexMax, indexMin);}
if(itemType == 3) { return _convertNamber(itemType, convFormat, valIndex, indexMax, indexMin);}
return "";
}
void _menuUpdateToEEpromItems()
{
(updateIntegerToEEPROM(2, 0, 0x0, ((_menuValueArray_int[0]))));
(updateBooleanToEEPROM(1, 0, 0x0, ((_menuValueArray_bool[0]))));
(updateIntegerToEEPROM(4, 0, 0x0, ((_menuValueArray_int[1]))));
}
String _convertNamber(byte itemType, byte convFormat, byte valIndex, byte indexMax, byte indexMin)
{
if (itemType== 3) {
if (convFormat == 4) { return String((_menuValueArray_int[valIndex - 1 ]),DEC);}
if (convFormat == 5) { return String((_menuValueArray_int[valIndex - 1]),HEX);}
if (convFormat == 6) { return String((_menuValueArray_int[valIndex -1]),BIN);}
}
}
String _convertBoolean(byte itemType, byte convFormat, byte valIndex, byte indexMax, byte indexMin)
{
if (convFormat == 1) { if(_menuValueArray_bool[valIndex -1]) {return "1";} else{ return "0";}}
if (convFormat == 2) { if(_menuValueArray_bool[valIndex -1]) {return "True";} else{ return "False";}}
if (convFormat == 3) { if(_menuValueArray_bool[valIndex -1 ]) {return "
Да";} else{ return "Нет";}}
if(_menuValueArray_bool[valIndex -1]) {return _readStringFromProgmem ((char*)pgm_read_word(&(_flprogMenuStringsArray[indexMax - 1])));} else { return _readStringFromProgmem ((char*)pgm_read_word(&(_flprogMenuStringsArray[indexMin - 1])));}
}
byte readByteFromEEPROM(int addres, byte bitAddres, byte chipAddres)
{
return 
EEPROM.read(addres);
}
void updateByteToEEPROM(int addres, byte bitAddres, byte chipAddres, byte value)
{
return EEPROM.update(addres, value);
}
bool readBooleanFromEEPROM(int addres, byte bitAddres, byte chipAddres)
{
byte temp = readByteFromEEPROM( addres, bitAddres, chipAddres);
return bitRead(temp, bitAddres);
}
void updateBooleanToEEPROM(int addres, byte bitAddres, byte chipAddres, bool value)
{
byte temp = readByteFromEEPROM( addres, bitAddres, chipAddres);
bitWrite(temp, bitAddres, value);
updateByteToEEPROM( addres, bitAddres, chipAddres, temp);
}
int readIntegerFromEEPROM(int addres, byte bitAddres, byte chipAddres)
{
byte hight = readByteFromEEPROM( addres, bitAddres, chipAddres);
byte low = readByteFromEEPROM( (addres+1), bitAddres, chipAddres);
return word(hight, low);
}
void updateIntegerToEEPROM(int addres, byte bitAddres, byte chipAddres, int value)
{
updateByteToEEPROM( addres, bitAddres, chipAddres, highByte(value));
updateByteToEEPROM( (addres+1), bitAddres, chipAddres, lowByte(value));
}

 

 

 


Заключение

Для  нашей школы это устройство необходимо. Данный проект обязательно будет реализован в нашей школe т.к. после замены обычных вахтера в школах города на сотрудников ЧОП с 01.07.2018г. подавать звонки просто некому. В должностной инструкции сотрудника ЧОП, нет обязанности подавать звонок в образовательном учреждении.

Основная цель данного проекта - это включать звонок в соответствии с расписанием школьных звонков в учебном заведении.

Использование автоматизированной системы подачи звонков в школе позволит:

1.  автоматизировать процесс подачи звуковых сигналов;

2. освободить человека(вахтера) от постоянного отслеживания времени подачи звонков;

3. исключить человеческий фактор (забыли подать звонок, подали позже/раньше и т.д.)

За счет адаптивного интерфейса может использоваться в разных ОО с разным расписанием учебных занятий.

 


Список используемой литературы

  1. Интернет-инциклопедия https://ru.wikipedia.org/wiki  (Дата обращения 11.03.2019г.)
  2. Проекты с использованием контроллера Arduino. Петин В.А.
  3. Схемотехника  https://habr.com/ru/post/91922/  (Дата обращения 11.03.2019г.)
  4. Сайт обзор IT, http://obzoryit.ru/nejronnye-seti-iskusstvennyj-intellekt/ (Дата обращения 11.03.2019г.)
  5. Схемы управления питанием, http://easyelectronics.ru/tag/sxemotexnika (Дата обращения 11.03.2019г.)
  6. Радиоэлектроника,  http://rc-dom.ru/stati/avtomodeli/radioupravljaemye-mashiny-istorija-razvitija.html/ (Дата обращения 11.03.2019г.)
  7. Сайт обзор IT, http://obzoryit.ru/nejronnye-seti-iskusstvennyj-intellekt/ (Дата обращения 11.03.2019г.)

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Автоматизированная система подачи звонков в школе на Arduino"

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Дефектоскопист

Получите профессию

Методист-разработчик онлайн-курсов

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 671 826 материалов в базе

Материал подходит для УМК

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 21.03.2019 11651
    • DOCX 741.5 кбайт
    • 271 скачивание
    • Рейтинг: 5 из 5
    • Оцените материал:
  • Настоящий материал опубликован пользователем Кисель Вера Михайловна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Кисель Вера Михайловна
    Кисель Вера Михайловна
    • На сайте: 5 лет и 3 месяца
    • Подписчики: 0
    • Всего просмотров: 13252
    • Всего материалов: 2

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Фитнес-тренер

Фитнес-тренер

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Разработка и сопровождение требований и технических заданий на разработку и модернизацию систем и подсистем малого и среднего масштаба и сложности

Системный аналитик

600 ч.

9840 руб. 5600 руб.
Подать заявку О курсе
  • Сейчас обучается 67 человек из 33 регионов
  • Этот курс уже прошли 84 человека

Курс профессиональной переподготовки

Педагогическая деятельность по проектированию и реализации образовательного процесса в общеобразовательных организациях (предмет "Математика и информатика")

Учитель математики и информатики

300 ч. — 1200 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 36 человек из 17 регионов
  • Этот курс уже прошли 35 человек

Курс профессиональной переподготовки

Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации

Преподаватель информационных технологий

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 192 человека из 56 регионов
  • Этот курс уже прошли 977 человек

Мини-курс

Эффективные коммуникационные стратегии в образовательной среде: от управления до мотиваци

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Уникальный образ как педагога: основные принципы позиционирования

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Этот курс уже прошли 22 человека

Мини-курс

Развитие и воспитание: ключевые навыки для родителей маленьких детей

4 ч.

780 руб. 390 руб.
Подать заявку О курсе