Данная библиотека предназначена для работы с диммером, дает возможность управления большим количеством диммеров используя аппаратный таймер и внешние прерывания. При использовании библиотеки стоит заранее ознакомится с таблицей задаваемых пинов. * ---------------------- OUTPUT & INPUT Pin table --------------------- * +---------------+-------------------------+-------------------------+ * | Board | INPUT Pin | OUTPUT Pin | * | | Zero-Cross | | * +---------------+-------------------------+-------------------------+ * | Leonardo | D7 (NOT CHANGABLE) | D0-D6, D8-D13 | * +---------------+-------------------------+-------------------------+ * | Mega | D2 (NOT CHANGABLE) | D0-D1, D3-D70 | * +---------------+-------------------------+-------------------------+ * | Uno | D2 (NOT CHANGABLE) | D0-D1, D3-D20 | * +---------------+-------------------------+-------------------------+ * | ESP8266 | D1(IO5), D2(IO4), | D0(IO16), D1(IO5), | * | | D5(IO14), D6(IO12), | D2(IO4), D5(IO14), | * | | D7(IO13), D8(IO15), | D6(IO12), D7(IO13), | * | | | D8(IO15) | * +---------------+-------------------------+-------------------------+ * | ESP32 | 4(GPI36), 6(GPI34), | 8(GPO32), 9(GP033), | * | | 5(GPI39), 7(GPI35), | 10(GPIO25), 11(GPIO26), | * | | 8(GPO32), 9(GP033), | 12(GPIO27), 13(GPIO14), | * | | 10(GPI025), 11(GPIO26), | 14(GPIO12), 16(GPIO13), | * | | 12(GPIO27), 13(GPIO14), | 23(GPIO15), 24(GPIO2), | * | | 14(GPIO12), 16(GPIO13), | 25(GPIO0), 26(GPIO4), | * | | 21(GPIO7), 23(GPIO15), | 27(GPIO16), 28(GPIO17), | * | | 24(GPIO2), 25(GPIO0), | 29(GPIO5), 30(GPIO18), | * | | 26(GPIO4), 27(GPIO16), | 31(GPIO19), 33(GPIO21), | * | | 28(GPIO17), 29(GPIO5), | 34(GPIO3), 35(GPIO1), | * | | 30(GPIO18), 31(GPIO19), | 36(GPIO22), 37(GPIO23), | * | | 33(GPIO21), 35(GPIO1), | | * | | 36(GPIO22), 37(GPIO23), | | * +---------------+-------------------------+-------------------------+ * | Arduino M0 | D7 (NOT CHANGABLE) | D0-D6, D8-D13 | * | Arduino Zero | | | * +---------------+-------------------------+-------------------------+ * | Arduino Due | D0-D53 | D0-D53 | * +---------------+-------------------------+-------------------------+ * | STM32 | PA0-PA15,PB0-PB15 | PA0-PA15,PB0-PB15 | * | Black Pill | PC13-PC15 | PC13-PC15 | * | BluePill | | | * | Etc... | | | * +---------------+-------------------------+-------------------------+ Использование данной библиотеки упрощает код пользователя при помощи функций: 1. функция dimmerLamp. Данная функция инициализирует значение пина которое будет использоватся, задается пользователем а.Пример dimmerLamp dimmer(4); диммер выход DIM/PSM инциализируется на пин 4 для плат, в которых пин Zero-Cros не переназначается (NOT CHANGABLE для AVR, SAMD) б.Пример dimmerLamp dimmer(4, 2); диммер выход DIM/PSM инциализируется на пин 4 для плат, на которых Zero-Cross можно переназначать (ESP32, ESP8266, Arduino Due) 2. функция begin - инициализация портов, таймера и внешнего прерывания от zero-cross. Пример dimmer.begin(NORMAL_MODE, ON); инициализация портов, выбор режима работы, вкл/выкл. Параметр 1: Выбор режим работы диммера состоит из двух вариантов NORMAL_MODE и TOGGLE_MODE а. NORMAL_MODE работа диммера в заданном значении от 0 до 100 (%) (целочисленное) Пример работы режима находится в папке \RBDdimmer\examples\SimpleDimmer б. TOGGLE_MODE плавное изменение значения димминга увеличение и снижение в заданных границах. Данное решение построенно на изменении значения диминга за счет аппаратного таймера и не использует код цикла. Пример работы режима находится в папке \RBDdimmer\examples\SimpleToggleDimmer Параметр 2: ON/OFF. a. ON - включение таймера, диммер использовать можно. a. OFF - выключение параметров для таймера, диммер использовать нельзя. 3. Функция setPower установка значения димминга от 0 до 100% Пример dimmer.setPower(90); 4. Функция getPower используется для того что бы получить текущее значение димминга Пример Serial.print(dimmer.getPower()); Result 0~100 int 5. Функция setMode установка или изменение мода режимами работы (NORMAL_MODE и TOGGLE_MODE) dimmer.setMode(NORMAL_MODE/TOGGLE_MODE) 6. Функция getMode полученние нынешнего значения режима работы Пример Serial.print(dimmer.getPower()); Result 0 (NORMAL_MODE) or 1 (TOGGLE_MODE) 7. Функция setState задет состояние димминга ON/OFF Пример dimmer.setState(ON); delay(100); dimmer.setState(OFF); 8. Функция getState полученние нынешнего значения состояния диммера Serial.print(dimmer.getState()); Result 0 (OFF) or 1 (ON) 9. Функция changeState изменяет состояние диммера на противоположное Пример dimmer.setState(ON); delay(100); dimmer.changeState; delay(100); 10. Функция toggleSettings плавное изменение значения димминга увеличение и снижение в заданных границах Пример находится в папке \RBDdimmer\examples\SimpleToggleDimmer