Управление батареей шестидесяти реле через каскад восьми сдвиговых регистров 74HC595

polyline
Offline
Зарегистрирован: 12.06.2016

Ищу ответственного исполнителя для написаниея программы по следующему техническому заданию:

Техническое задание

написания кода программы для Arduino

«Управление батареей шестидесяти реле через каскад восьми сдвиговых регистров 74HC595»

 

Описание конструкции:

Управление батареей реле осуществляется пультом управления замыканий реле.

Внутри пульта управления батареей реле размещена плата контроллера Arduino UNO, плата с каскадом  восьми сдвиговых регистров, модуль RTC часов реального времени. Питание размещенного в корпус пульта контроллера Arduino осуществляется автономным источником тока напряжением 9В. На корпус пульта выведено гнездо для подключения пульта к автономному источнику питания, тумблер «К1» - включения/отключения питания контроллера Arduino от автономного источника тока, кнопка «К2» - пуск, кнопка «К3» - стоп, светодиодный индикатор выполнения программы - «И1», светодиодный индикатор предупреждения - «И2», светодиодный индикатор окончания выполнения программы - «И3». Также на корпус пульта выведен разъём USB-B для программирования контроллера Arduino программой замыканий реле и клеммные колодки для подключения батареи реле. Замыкающее напряжение на клеммные колодки подается от сдвиговых регистров.

Сдвиговые регистры подключены к выводам Arduino «digital 11», «digital GND», «digital 8», «digital 12», «power 5v». Сдвиговые регистры подключены в каскад согласно схеме http://arduino.ru/Tutorial/registr_74HC595.

Кнопка без фиксации «К2» замыкает выводы Arduino «power 5v» и «digital 2». Вывод «digital 2» также соединен с выводом «digital GND» резисторной перемычкой. Кнопки подключены в соответствии со схемой http://arduino.ru/tutorials/button.

Кнопка без фиксации «К3» замыкает выводы Arduino «power 5v» и «digital 4». Вывод «digital 4» также соединен с выводом «digital GND» резисторной перемычкой.

Индикатор «И1» подключен через резистор к выводам Arduino «digital 13» и «digital GND».

Индикатор «И2» подключен через резистор к выводам Arduino «digital 10» и «digital GND».

Индикатор «И3» подключен через резистор к выводам Arduino «digital 9» и «digital GND».

Модуль RTC часов реального времени подключен к выводам Arduino «analog in А4», «analog in А5» «power GND».

 

Требуется написание кода программы управления батареей реле с помощью существующего пульта. При этом к программе предъявляются следующие требования и ограничения:

1)      Задание последовательности срабатываний реле и последующая запись программы пуска реле в контроллер Arduino осуществляется оператором пуска. Необходимо предусмотреть пользовательский интерфейс, в котором оператор пуска будет задавать последовательность срабатываний реле в батареи.

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

3)      Задача в пользовательском интерфейсе оператором пуска команд на срабатывание реле должна прописываться в часах, минутах, секундах и долях секунд в формате с дискретностью кратной 0,5 секунды.

4)      Первая заданная оператором пуска команда на замыкание реле принимается за событие 00 час. 00 мин. 00,0 сек. – является нулевым отсчетным временем старта программы пуска. Задача оператором пуска времени запуска следующего реле должна быть возможна не ранее чем в 00 час. 00 мин. 00,5 сек., но не позже 01 час. 40 мин. 00,0 сек. от нулевого отсчетного времени старта программы пуска (срабатывания первого заданного в программу пуска реле).

5)      При выполнении программы пуска одно реле должно срабатывать только один раз. Задание команды через пользовательский интерфейс на повторное срабатывание реле должно быть запрещено.

6)      Время удержания реле в замкнутом состоянии должно составлять 250 миллисекунд.

7)      После записи оператором пуска программы последовательности срабатываний реле в контроллер Arduino через выведенный на панель пульта USB порт, и отключения пульта от компьютера, программа управления батареей реле должна сохраняться в памяти контроллера.

8)      При включении контроллера тремблером «К1» подача электрических импульсов до начала старта программы должна быть полностью исключена!

9)      Старт программы начинается с нажатия оператором пуска кнопки «К2», при этом должно произойти немедленное срабатывание первого заданного ранее оператором пуска в пользовательском интерфейсе реле, а также загореться индикатор «И1». Этот момент времени считается нулевым временем начала выполнения программы замыканий реле.

10)   Программа замыканий реле контроллером Arduino через каскад восьми сдвиговых регистров 74HC595 должна быть написана таким образом, чтобы была полностью исключена возможность случайной утечки командного импульса, который бы смог привести к срабатыванию другого реле!

11)   Индикатор «И1» должен гореть все время, пока контроллером выполняется программа пуска реле и гаснуть после завершения программы.

12)   Необходимо предусмотреть возможность приостановки выполнения программы срабатывания реле нажатием кнопки «К3».

13)   При приостановке программы нажатием кнопки «К3», индикатор «И1» не должен гаснуть, так как свидетельствует о том, что программа была уже пущена, но не завершена до конца.

14)   Продолжение работы приостановленной программы осуществляется также нажатием кнопки «К2», при этом должно произойти немедленное замыкание следующего в очереди программы реле, не зависимо от того сколько осталось текущего по программе времени до срабатывания следующего реле – таким образом оставшееся время до пуска следующего реле аннулируется.

15)   Если в ходе выполнения программы оператором пуска была повторно нажата кнопка «К2» не зависимо от того была ли до этого нажата им кнопка «К3» или нет должно произойти немедленное срабатывание следующего заданного в очереди программы реле с пропуском оставшегося времени до момента его срабатывания.

16)   Повторное нажатие кнопки «К2» считается повторным, если до этого она была отпущена. Длительное удержание кнопки «К2» в нажатом состоянии при старте программы не должно приводить к пропуску времени до начала момента срабатывания следующего реле.

17)   Индикатор «И2» должен загорается за 3 с до начала срабатывания следующего заданного в очереди программе реле после старта программы и гаснуть во время выполнения команды замыкания. Для привлечения внимания оператора пуска о предстоящем включении реле следует предусмотреть работу индикатора «И2» в мигающем режиме, причем, за время работы индикатора (3 сек.) следует сделать три мигающих предупреждения – первые два коротких со временем включения индикатора на 0,5 сек. и паузой между включениями 0,5 сек. и последнее длинное со временем включения индикатора на 1 сек.

18)   Если оператором пуска в пользовательском интерфейсе был задан такой алгоритм срабатываний реле, при котором интервал времени срабатываний двух реле получается менее 3 секунд (например в 00 час. 00 мин. 30,0 сек. срабатывает реле №8, следом за ним в 00 час. 00 мин. 30,5 сек. срабатывает реле №2), соответственно индикатор «И2» должен отработать не три секунды, а оставшееся время (0,5 секунды) до пуска следующего реле.

19)   Сразу после завершения цикла программы замыканий, индикатор «И1» должен погаснуть, при этом должен включиться индикатор «И3».

20)   Повторное выполнение программы замыканий реле возможно только после полного завершения программы повторным нажатием оператором пуска кнопки «К2» (программа не должна произвольно уходить в цикл), при этом индикатор «И3» должен гаснуть и вновь загораться индикатор «И2».

Ваши предложения просьба направлять на электронную почту polyline@bk.ru. Исполнительвыбирается на конкурсной основе. Оплату выполненной работы гаранитрую после проведения приемочных испытаний программы.

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Такое лучше объяснить по скайпу и подробно.  (p.masyukov)

Также по предоплате - так как писанины не мало.

Пишите бюджет - будем акукцион тут проводить. 

polyline
Offline
Зарегистрирован: 12.06.2016

10 000 руб. за работу программы без ошибок с четким соблюдением каждого пункта технического задания.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Хыыы..... Ничего так.... Если я не ошибаюсь пиротехнические пульты в сотни раз дороже стоют. За десятку это можно только прочитать и понять :)

madmax96
Offline
Зарегистрирован: 22.09.2011

готов обсудить. 

fmv.electronics (gmail) com

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

brokly пишет:
Хыыы..... Ничего так.... Если я не ошибаюсь пиротехнические пульты в сотни раз дороже стоют. За десятку это можно только прочитать и понять :)

 

Ну да. Задание примитивное - но масштабное, даже и не подумал про пиротехнику.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Самое прикольное, что деньги по факту:-)

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

brokly пишет:
Самое прикольное, что деньги по факту:-)

Ну да. Тоже в тему.

polyline
Offline
Зарегистрирован: 12.06.2016

ПРОЕКТ ЗАВЕРШЕН.

Выражаю огромную благодарность Максиму Ф.

Грамотный специалист, терпеливо во всем разобрался и устранил все возможные ошибки предложил оптимальное решение, четко выполнил каждый пункт задания. Работа оплачена, проект закрыт.

Спасибо Максим!