/* Данный скетч позволяет запустить димер в режиме FADE для платы ESP8266 - 2сек диммер плавно увеличивает мощность - 2сек диммер плавно уменьшает мощность Для того чтобы успешно прошить даный скетч Вам нужно: - скачать дистрибутив для работу с ESP8266 в Arduino IDE - скачать библиоеки Ticker.h - подключить димер на соответствующие пины или назначить свои При работе с ESP8266 подключать библиотеку AC_Dimmer и использовать ее функции не нужно Достаточно прошить лишь данный пример Для управления можностью используется переменная val (смотрите ниже) */ #include #include Ticker blinker; const byte interruptPin = D7; // пин диммера М2 const byte dimPin = D5; // пин диммера М1 int val = 0; // переменная, которая определяет мощность от 0 до 10000 int power = 0; int rise = 0; void ICACHE_RAM_ATTR handleInterrupt(); void ICACHE_RAM_ATTR onTimerISR() // обработчик прерывания таймера { digitalWrite(dimPin, HIGH); delayMicroseconds(40); digitalWrite(dimPin, LOW); timer1_write(50000);//10мс } void handleInterrupt() // обработчик прерывания по фронту (от пина детекции фазы димера) { power = 49000 - 4.785*val; timer1_write(power); if(val < 10000 && rise == 1) val = val + 100; // плавное наростание else rise = 0; if(val > 0 && rise == 0) val = val - 100; // плавное угасание else rise = 1; } void setup() { pinMode(interruptPin, INPUT_PULLUP); pinMode(dimPin, OUTPUT); attachInterrupt(digitalPinToInterrupt(interruptPin), handleInterrupt, RISING); timer1_attachInterrupt(onTimerISR); timer1_enable(TIM_DIV16, TIM_EDGE, TIM_SINGLE); // здесь можно писать свой код (setup()) // // здесь можно писать свой код (setup()) } void loop() { // здесь можно писать свой код // // здесь можно писать свой код }