Wurde hier schon verschiedentlich diskutiert. Die einfachste Variante, wenn eh nicht potenzialfrei gearbeitet wird, ist ein hochohmiger Widerstand von der Phase zum Microcontroller. Wenn Dir das zu abenteuerlich klingt, ist das zwar zu verstehen, bei richtigem Aufbau aber machbar. Die Schutzdioden klemmen alles über Vcc, und Du bekommst immer dann ein "low", wenn die Netzspannung durch 0 geht (sehr genau sogar). Entweder betreibst Du Deine gesamte Schaltung hinter einem Brückengleichrichter, dann ist es einfach und Du kannst jedes low zum Starten eines 10ms-Timers benutzen, aber da Du ja Triacs einsetzt, ist das wohl kaum der Fall, also bekommst Du ein Rechtecksignal, das bei jedem Nulldurchgang seine Flanke wechselt. Also prüfst Du auf Flankenwechsel, startest den 10ms-Timer und zündest den Triac mit einem nicht zu kurzen Impuls (aber auch nicht bis zum Nulldurchgang, dann bleibt er eventuell gezündet!), wenn es an der Zeit ist.