//20.02.2019 //by Reptiloid software /* Ограничения: - Для контроля фазы использовать только D2 (прерывание INT0) (порт M2 диммера подключать к порту D2 АРДУИНО)!!! - Не использовать пины D9 и D10 для ШИМ Analog.Write()!!! только цифровой выход/вход digitalWrite() и digitalRead() Функционал: - Данная библиотека позволяет регулировать нагрузку(и), подключенную в промышленную сеть 220В с помощью АУРДУИНО различными встроенными функциями описанными ниже Как работать: 1) Чтобы начать работу нужно подключить библиотеку AC_Dimmer.h 2) Обозначить и раздать номера диммерам (нумерация от 0!!!), используемым в проекте: #define <"имя димера"> <"порядковый номер"> Например: #include #define Dimmer_1 0 #define Dimmer_2 1 #define Dimmer_3 2 3) Инициализировать димер(ы) в void setup(). - Инициализацию выполнять строго между функций Dimmer_init_begin() и Dimmer_init_end(); - Инициализировать с помощью функции Dimmer_pin_assign(): Dimmer_pin_assign(<"имя димера">, <"порт(пин) ардуино димера">); Например: void setup() { Dimmer_init_begin(); Dimmer_pin_assign(Dimmer_1, 3); Dimmer_pin_assign(Dimmer_2, A3); Dimmer_pin_assign(Dimmer_3, A2); Dimmer_init_end(); } 3) В void loop() использовать нужную функцию: - Dimm_value(<"имя димера">, <"значение мощности от 0 до 255">) - Heater(<"имя димера">, <"значение мощности от 0 до 10">) - SSR_switch(<"имя димера">, <значения 1 или 0 (HIGH/LOW)>) Например: void loop() { Dimm_value(Dimmer_3, 64); // 25% мощность на диммере№3 Heater(Dimmer_2, 3); //30% мощности на диммере№2 (при условии что там ТЕН или другая низкоинерциооная нагрузка) Dimm_value(Dimmer_1, 128); //50% мощности на диммере№1 delay(1000); //установленные высше параметры удерживаются 1сек SSR_switch(Dimmer_3, LOW); // отключим все диммеры на 1сек SSR_switch(Dimmer_2, LOW); SSR_switch(Dimmer_1, LOW); delay(1000); } Код даного примера предполагает плавное поочередное зажигание и и тушение трех ламп накаливания, подключенных к ардуино каждая через независимый диммер Демонстрацию работы библиотеки на тестовом стенде и схему можно посмотреть здесь: https://www.youtube.com/watch?v=9fhkJQIRmEA Так же можно использовать для теста одиночного диммера */ #include #include //если Вы хотите использовать данную библитеку в своем в проекте, //математическая библиотека не обязательна к включению #define Dimmer_1 0 #define Dimmer_2 1 #define Dimmer_3 2 unsigned char i = 0; unsigned char range = 70; // Диапазон регулировки // (255 - максимальное значение) void setup() { Dimmer_init_begin(); Dimmer_pin_assign(Dimmer_1, 3); Dimmer_pin_assign(Dimmer_2, A3); Dimmer_pin_assign(Dimmer_3, A2); Dimmer_init_end(); } void loop() { i++; Dimm_value(Dimmer_1, range*fabs(sin(i*2*3.14/255))); Dimm_value(Dimmer_2, range*fabs(sin((i+(255/3))*2*3.14/255))); Dimm_value(Dimmer_3, range*fabs(sin((i+(255*2/3))*2*3.14/255))); delay(25); }