DIMMER bombilla 220V

Buenas tardes.
Ya he hecho alguna consulta más sobre este tema. Consiste en controlar el voltaje de una bombilla a traves de arduino UNO.
Con un circuito de paso por cero, mando una señal a una entrada de mi arduino (cero = pin 2), despues establezco un tiempo de espera y tras este tiempo activo la salida (TRIAC = pin 4) que me activa el triac hasta que vuelva a pasar por cero.
Bien, consigo variar la tension de mi bombilla pero mi problema es que esta tensión de salida de la bombilla no toma un valor estable y varía mucho su intensidad.
Alguien podría ayudarme a encontrar el problema?
Dejo el código que he realizado. Un saludo.

int cero = 2; //entrada del zero_crossing
long tiempo1=0;
long tiempo2=0;
long tiempo3=0;
int TRIAC = 4; //salida de activacion del triac
int T_espera = 8; // tiempo de espera para poder variar la tension
int x = 0; //estado
int y = 0; //estado


void setup()
{
    
  pinMode(cero, INPUT);
  pinMode(TRIAC, OUTPUT);

 
}

void loop()
{
  
 
      if ( x == 0)
      {
        digitalWrite(TRIAC, LOW);
        if(digitalRead(cero) == 1) 
       {
       tiempo1 = millis(); //cuando pasa por cero,el valor del tiempo que ha transcurrido es esta variable
       x=1;}
      
      }
       if (x == 1)
       {
         tiempo2 = tiempo1 + T_espera;
                     if(millis() > tiempo2 ){  
                        if(y=0)
                        {
                          tiempo3 = millis();
                          y=1;
                        }
                        if (y=1)
                        {
                         digitalWrite(TRIAC,HIGH);
                         if(millis()>= tiempo3 + 0.3) // 0.3 ms que es lo necesrio para activar el triac
                         {
                          digitalWrite(TRIAC, LOW);
                          x=0;
                          y=0;

                        }
                       
                         
                        }

                     }
       }
}

Creo habertelo puesto pero lo hago de nuevo Arduino phase control

Software y hardware resueltos.