uglerod писал(а): 05 сен 2019, 22:53
Тишина насторожила всех. Удачи вам! Ждём результат. Хоть периодически выходите на связь.
В числе полезных блоков, которые давно хотелось сделать отлажены:
1) ЧТЕНИЕ c пина аналогового сигнала ====== (с учетом особенностей STM32)
[spoiler]
======ЧТЕНИЕ c пина аналогового сигнала ====== (с учетом особенностей STM32)
1. Блок проверяет на допустимость пина для работы на аналоговый ввод с учетом особенностей контроллера.
Если пин недопустимый, ввод выполнятся не будет, vd=0;
2. Блок возвращает три значения:
vd-считанное с АЦП значение в единицах АЦП.
vd очищается от погрешности дрейфа нуля АЦП (vd<=параметр пользователя ДРЕЙФ НУЛЯ) .
Если параметр ДРЕЙФ НУЛЯ==0, очистка не выполняется.
vd очищается от небольших колебаний измерения, размер которых определяется параметром пользователя ДЕЛЬТА ОТКЛОНЕНИЯ
по условию (abs(предыдущее значение - vd)<= ДЕЛЬТА ОТКЛОНЕНИЯ).
Если ДЕЛЬТА ОТКЛОНЕНИЯ=0, очистка от колебаний измерения не производится.
vs-приведенное измеренное значение vd к разрядности, установленной в библиотеке (default=12) и может быть изменен пользователем при инициализации системы;
va-усредненное значение vs. Размер массива сохраняемых последних значений для усреднения определяется параметром пользователя УСРЕДНЕНИЕ.
Если УСРЕДНЕНИЕ=0, усреднение не производится, va=vs.
-------------------------------------
ecoins@mail.ru 29.08.18
[/spoiler]
2) Вывод на пин дискретного сигнала.
[spoiler]
====== Вывод на пин дискретного сигнала ======.
1. Блок проверяет на допустимость пина для работы на дискретный вывод с учетом особенностей контроллера.
Если пин недопустимый, вывод выполнятся не будет.
2. При первом обращении осуществляется инициализация параметров и настройка пина по параметру пользователя ТИП ВХОДА :
'I' - вход без подтяжки (pinMode(pin,INPUT);
'F'- вход плавающий (STM32) ( (pinMode(pin,INPUT_FLOATING);
'U'-вход с подтяжкой к +Vcc (pinMode(pin,INPUT_PULLUP);
'D'- вход с подтяжкой к GND (ESP32,STM32) (pinMode(pin,INPUT_PULDOWN);
3. Если параметр пользователя ИНВЕРСИЯ=''I' - (или любой другой, отличный от 'N') - инверсия измеренного сигнала включена.
4. Если параметр пользователя ЗАЩИТА ОТ ДРЕБЕЗГА=''R' - (или любой другой, отличный от 'R') - включена защита от дребезга.
В этом режиме контролируется неизменность измеренного сигнала в течении времени, определяемый параметром ВРЕМЯ ЗАЩИТЫ ОТ ДРЕБЕЗГА.
В отличии от стандартной реализации Arduino, режим реализован без delay() и потому блок можно использовать в системах реального времени.
Рекомендуется устанавливать блок в платах, вызываемой как одна из фоновых задач.
-------------------------------------
ecoins@mail.ru 29.08.1
[/spoiler]
========
3) Также реализовано: 1)универсальное для всех контроллеров управление пином с ШИМ, для ESP32 опрос сенсорных входов и встроенного в корпус датчика Холла.
4) Полностью переделана концепция работы со строками и выводом их на консоль - теперь данные хранятся во флэш.