Model Railway Level Crossing

What michinyon is describing is called a Finite State Machine.

I wrote a tutorial a while back about them: http://hacking.majenko.co.uk/finite-state-machine