Если так будет гореть в полнакала, то все у тебя работает, но без мигания.
PHP код:
int AC_pin = 10; // выход для симистора
int dim = 64; // уровень димирования (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(2000); // короткая пауза, чтобы обеспечить включение симистора
digitalWrite(AC_pin, LOW); // выключение симистора(он выключится когда полупериод достигнет нуля)
int pauza = 8000 - dimtime; // расчет перехода через ноль при отрицательной полуволне
delayMicroseconds(pauza); // ожидаем для управления отрицательной полуволной
digitalWrite(AC_pin, HIGH); // включить симистор
delayMicroseconds(2000); // короткая пауза, чтобы обеспечить включение симистора
digitalWrite(AC_pin, LOW); // выключение симистора(он выключится когда полупериод достигнет нуля)
}
void loop()
{
}