I've been looking at this schematic for triac control by varying the gate pulse timing. The description states that the triac switches off automatically at zero crossing and when there is no gate pulse. Does this mean this a zero-crossing detecting triac driver? I looked up the datasheet for the triac listed there (MOC3052-M) and it states that the opto circuit is couple to a non-zero crossing triac driver. I'm a little confused.
The description states that the triac switches off automatically at zero crossing and when there is no gate pulse. Does this mean this a zero-crossing detecting triac driver?
No. Triacs have the characteristic that, once triggered, they stay on until the current through them falls to zero (or very close). This makes them very easy to use in AC circuits because the voltage (and current)falls to zero every half-cycle. It also makes them almost useless in DC circuits - unless you want something to latch on until power is switched off.
The term "zero-cross triac driver" refers to when the triac is turned on.
See my answer to Confusion with TRIAC firing and zero crossing point for more details and some graphics on this subject and when to use zero-cross and not.
This is two different things. The zero crossing detection is happening with the the H11AA1 circuit, send pulse to "Dig Out". For each detection, the Arduino send another pulse using to the MOC3052 "Dig In", wich is just a optocoupler to protect the Arduino side, from the 220V power side. To adjust the power (Dimmer), you need to control the time (delay) after get a zero cross to send a pulse to MOC3052.
The schematic that you look, is similar to this one, wich can be easier to understand. http://cdn.instructables.com/FQZ/NYV7/H8CVG9TK/FQZNYV7H8CVG9TK.MEDIUM.jpg