Dimming Code (Triac)

if (half == HIGH); {
    dimming = 100;
}

The semi colon after the if() is wrong, it terminates the if statement and the effect is to make dimming = 100 whether half is HIGH or LOW.

Remove it.