да, сейчас схема точно такая как в 24-том посте.. эффект тот же...
скетч:
Код:
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; } // пример уменьшения яркости лампы
}
кстати.. также на 10 вывод подключил светодиод.. так вот, если не подавать 220В, то светодиод выключен, если подать 220В, то он очень тускло светит, при этом лампа хаотично вспыхивает..
вот только что отсоединил вывод на 2 пин, светодиод в этом случае горит постоянно, даже если отключить 220В.