Cambiar delay por micros()

vffgaston:
Hola,

Por favor, manda el código.

Saludos

Aquí te dejo el código:

int AC_LOAD = 8;    
 unsigned long apagar;
 int dimming;
  unsigned long encender;

void setup()
{
  pinMode(AC_LOAD, OUTPUT);
  attachInterrupt(0, zero_crosss_int, RISING);  
 
}


void zero_crosss_int()  
{

  digitalWrite(AC_LOAD, LOW); 
 encender = millis(); // Encender es el momento que la onda senoidal pasa por cero
 
 

}

void loop()  {
  
  
 dimming=200; //(desde 0 a 255)
  int dimtime = (0.035*dimming); //1000us - 10us /255 = 35us
       do
       {
 if(millis() - encender >= dimtime)   // tiempo de espera para activar la puerta del triac
 {  
  digitalWrite(AC_LOAD, HIGH);  
    if(millis() - encender > 1+dimtime) //1 milisegundo de duracion de pulso para desactivar la puerta
 {        
  digitalWrite(AC_LOAD, LOW);   

 }
 }
       } while(millis()-encender < 10); //lo que dura un semiperiodo 25Hz
   
}

Un saludo