да, сейчас схема точно такая как в 24-том посте.. эффект тот же...
скетч:
кстати.. также на 10 вывод подключил светодиод.. так вот, если не подавать 220В, то светодиод выключен, если подать 220В, то он очень тускло светит, при этом лампа хаотично вспыхивает..Код:int AC_pin = 10; // выход для симистора int dim = 128; // уровень димирования (0-128) 0 = on, 128 = 0ff void setup() { pinMode(AC_pin, OUTPUT); attachInterrupt(0, light, RISING); //прерывание по изменению уровня с низкого на высокий } void light() { int dimtime = (78*dim); // вычислим время отсечки delayMicroseconds(dimtime); // отсекаем лишнее digitalWrite(AC_pin, HIGH); // включить симистор delayMicroseconds(20); // короткая пауза, чтобы обеспечить включение симистора digitalWrite(AC_pin, LOW); // выключение симистора(он выключится когда полупериод достигнет нуля) int pauza = 9980 - dimtime; // расчет перехода через ноль при отрицательной полуволне delayMicroseconds(pauza); // ожидаем для управления отрицательной полуволной digitalWrite(AC_pin, HIGH); // включить симистор delayMicroseconds(20); // короткая пауза, чтобы обеспечить включение симистора digitalWrite(AC_pin, LOW); // выключение симистора(он выключится когда полупериод достигнет нуля) } void loop() { if(dim > 0) { delay(1); dim--; } else { delay(100);dim=128; } // пример уменьшения яркости лампы }
вот только что отсоединил вывод на 2 пин, светодиод в этом случае горит постоянно, даже если отключить 220В.




Ответить с цитированием