Re: Простой стабилизированный регулятор мощности ТЭНа из китайских модулей
kvic, d.styler,
На основе наработок Виктора, предложу свой вариант.
Поскольку передаём исключительно числовые параметры, есть смысл уйти от передачи в ASCII к бинарному коду. Малость сэкономим ресурсы немощных ардуинок.
=====
Информация от стабилизатора
Формат посылки (буква=полубайт, всего шесть байт): AB CD DD EE EE GG
A - Заголовок
B - Состав данных
C - Режим + ошибки
D - Измеренное входное напряжение сети (три полубайта, диапазон значений 0...4095, т.е. до 409,5В)
E - Измеренный выходной параметр или текущая уставка (два байта, диапазон значений 0...65535)
G - Конец посылки (CR) (один байт: $0D)
Полубайт «Состав данных»
младший бит - «уставка и выход» - 0-напряжение, 1-мощность
второй бит - «измерение выходного параметра» 1-измеряется, 0-нет
третий бит - «измерение входного напряжения» 1-измеряется, 0-нет
четвертый бит - (резерв)
Для стаба Виктора полубайт «состав данных» - b0010, т.е.
«уставка и выход» - напряжение,
выходной параметр - измеренный,
входное напряжение сети - НЕ измеряется
Для моего стаба полубайт «состав данных» - b0101, т.е.
«уставка и выход» - мощность,
выходной параметр - НЕ измеряется и передается текущая уставка,
входное напряжение сети - измеряется
Если в качестве заголовка использовать b0011, то вместе с полубайтом «состав данных» в терминале первый символ будет отображаться информативно (0...9 или одним из символов : ; < = > ? )
Полубайт «Режим + ошибки»
два младших бита — режим
b0000 - Стоп (по нулям, значит в стопе, логично же)
b0001 - Рабочий режим (старается поддерживать заданный выходной параметр)
b0010 - Разгон
b0011 - (резерв)
установленный третий бит при нулевом четвертом - ошибка на входе
b0100 - Сети нет (на выходе ноль, т. е. режим стоп, и два младших бита не врут)
b0101 - Напряжения сети недостаточно для достижения уставки
b0110 - (резерв)
b0111 - (резерв)
далее - ошибки на выходе и прочие...
=====
Управление стабилизатором
Формат посылки (буква=полубайт, всего не более четырех байт): AA BB BB GG
A - Заголовок (M,U,P…)
B - Код режима или уставка (один или два байта, диапазон значений 0...65535)
G - Конец посылки (CR) (один байт: $0D)