да, сейчас схема точно такая как в 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В.