/timerelay

Multichannel time relay

Primary LanguagePython

Рэле времени

Рэле определеяет подачу сетевого питания на одном потребителе (подключается параллельно), и на заданное время включает второй потребитель.

Прошивка рассчитана на микроконтроллер ATmega328P (Arduino UNO/Arduino Nano/etc.)

Реализовано многоканальное управление. Количество каналов задается при компиляции прошивки. В каждом канале отдельно присутствует защита от помех и ложных срабатываний которая заключается в том, что оцениваются параметры сигнала: синусойда должна перескакивать через 0 каждые 1/100 секунды. Только такой сигнал считается валидным.

Управление рэле осуществляется через чтение/запись с COM-порт.

Система команд

Команды устроены следующим образом:

Первый символ задает область команды, и может быть P (properties) или S (state).

Второй символ задает действие, и может быть S (set), G (get) или W (write).

Третьим символом, если нужен должен быть указан канал.

Регистр символов игнорируется.

Команды "set properties"

Команда Описание
g Защитное время в секундах. Если сигнал на вохде присутствует меньше этого времени он игнорируется.
s "Короткое" время в секундах. Выходной сигнал будет включен, но немедленно выключится при пропаже входного. Считается от момента подачи фходного сигнала, а не от конца защитного времени.
d время в секундах в течении которого выходной сигнал должен оставаться активным после пропажи входного, если входной сигнал имел длительность больше чем "короткое" время. Считается от момента исчезновения входного сигнала.
m установить текущий режим работы для канала: 0 -- авто, 1 -- всегда вкл, 2 -- всегда выкл
w записать текущие установки в EEPROM

Команды "get properties"

Поддерживается единственная команда -- "показать текущие установки для всех каналов".

Команды "set state"

Поддерживается единственная команда -- установить время в секундах работы канала независимо от входного сигнала. 0 -- выключить.

Команды "get state"

Поддерживается единственная команда -- "показать текуще состояние для всех каналов".

Примеры

psad600

установить время задержки отключения в 600 секунд для канала A.

psam1

установить режим канала A "всегда включено".

psam2

установить режим канала A "всегда выключено".

psam0

установить режим канала A в автомат.

pg

отобразить текущие установки для всех каналов.

pw

записать в EEPROM.

ssa300

запустить канал А на 5 минут независимо от входных сигналов.

ssb0

выключить канал B.

sg

отобразить текущее состояние для всех каналов.