Razumdom
У большинства модулей RAZUMDOM есть аналоговые входы. К ним можно подключить различные типы аналоговых датчиков с напряжением от 0 до 5В, измерить напряжение или ток. Полученные значение от 12 битного или 16 битного АЦП выводятся в виде числа от 0 до 4095 или 65535. Это число ничего не значит для пользователя. Нужно увидеть значение в тех величинах, которым соответствует датчик.
Например, подключаем ко входу 1 датчик освещенности - фототранзистор. Он подключается ко входу относительно земли. Внутри модуля есть подтягивающий резистор 22кОм, который создает ток для датчика. При увеличении освещенности фототранзистор пропорционально открывается и уменьшает значение напряжения на входе. Что бы увидеть значение в Люксах нужно преобразовать его по формуле линейной функции. Значение = K * АЦП +B. Этот расчет делается в реальном времени внутри блока. Необходимо указать только коэффициенты.
Как рассчитать коэффициенты
Для вывода правильных значений используется уравнение прямой или линейная функция.Записывается она в таком виде: y=k*x+b
y - это, например, освещенность в Люксах, х - это значение АЦП.
Поскольку в регистры можно записать только целое число, то коэффициент K записывается двумя числами: числителем и знаменателем. K/N * АЦП + B.
Например число 2,34 записывается: числитель K=234, знаменатель N=100.
Или 0,857143 записывается: числитель K=96, знаменатель N=112.
Уравнение прямой
Уравнение прямой записывается в более правильном виде таком:
A*x + B*y + C =0
Дальше рассчитываются коэффициенты по двум точкам (x1,y1) и (x2,y2).
При 10 Люкс считываете значение АЦП и при 1000 Люкс считываете значение АЦП.
Соответственно Люксы это - y, а АЦП это - x.
(y-y1)/(y2-y1) = (x-x1)/(x2-x1)
или в общем виде:
(y1 - y2) * x + (x2 - x1) * y + (x1 * y2 - x2 * y1) = 0
Вот и получили уравнение прямой по двум точкам.
Или наш вариант уравнения прямой в таком виде:
y= -A/B * x - C/B
или
y = -(y1 - y2)/(x2 - x1) * x - (x1 * y2 - x2 * y1)/(x2 - x1)
Из этого уравнения и выводим нужные коэффициенты:
k = (y2 - y1) или K = (Люксы2 - Люксы1)
n = (x2 - x1) или N = (ADC2 - ADC1)
b = (x1 * y2 - x2 * y1)/(x2 - x1) или B = (ADC1 * Люксы2 - ADC2 * Люксы1)/(ADC2 - ADC1)
Записываем эти коэффициенты в блок.
Рассчитываем таким же образом коэффициенты для остальных входов.
Точки измерения могут быть любые. Наклон линии может быть любой: вниз, вверх, в плюс или в минус. Значение АЦП и входного напряжения так же может быть любое как в плюс, так и в минус.
Онлайн калькулятор
Можно рассчитать коэффициенты онлайн калькулятором.
Значение параметра 1: ; Значение АЦП 1:
Точка 2
Значение параметра 2: ; Значение АЦП 2:
Теперь рассчитать коэффициенты:
Встроенный калькулятор коэффициентов
В большинстве модулей есть встроенный калькулятор коэффициентов.
Находится калькулятор в регистрах HR70 – HR74.
03 Read Holding Registers (HR), 06 Write Single Register.
Регистр |
Адрес |
Диапазон |
Описание регистра |
HR 70 |
40071 |
1…10 |
номер канала |
HR 71 |
40072 |
-32768…32767 |
Параметр 1 |
HR 72 |
40073 |
-32768…32767 |
Параметр 2 (запись в этот регистр запускает расчет и сохранение коэффициентов в указанный HR70 канал) |
HR 73 |
40074 |
-32768…32767 |
результат АЦП 1 (только чтение) |
HR 74 |
40075 |
-32768…32767 |
результат АЦП 2 (только чтение) |
Последовательность действий следующая:
1) подключить датчик.
2) в регистр HR70 записать номер канала (1 … 8), к которому подключен датчик.
3) установить датчик в калибровочную камеру.
4) после стабилизации значений вписать значение первого параметра в регистр HR71 и нажать ввод. Вместе с записью значения запишется текущее значение АЦП для первого параметра в регистр HR73.
5) изменить величину климатического параметра.
6) после стабилизации значений вписать значение второго параметра в регистр HR72 и нажать ввод. Вместе с записью значения запишется текущее значение АЦП для второго параметра в регистр HR74. Затем модуль рассчитает коэффициенты и перепишет эти параметры в регистры коэффициентов номера канала, указанного в HR70.
После этого в регистрах IR11 … IR17 будут выводиться значения в заданных физических величинах, пересчитанных по формуле линейной функции.