Que es lo que no entiendes?
Todo lo que hace no te importa solo mira el loop()
void loop(){ // sample code to exercise the circuit
i--;
OCR1A = i; //set the compare register brightness desired.
if (i<65){i=483;}
delay(15);
}
Ahi esta el codigo que le dice la OCR1A que hacer.
va desde 483 hasta 65
Bien parece chino básico sin ofender a los chinos. Pero eso es el dimmer que estas viendo.
Ahora tiene dos rutinas del timer
ISR(TIMER1_COMPA_vect){ //comparator match
digitalWrite(GATE,HIGH); //set TRIAC gate to high
TCNT1 = 65536-PULSE; //trigger pulse width
}
ISR(TIMER1_OVF_vect){ //timer1 overflow
digitalWrite(GATE,LOW); //turn off TRIAC gate
TCCR1B = 0x00; //disable timer stopd unintended triggers
}
y ahi se acciona el triac y se lo apaga.
entonces el segundo triac se apaga como el primero
Y para su disparo tal vez haya que usar otro timer
De todos modos no se que quieres hacer con los Triacs.