This counter was designed in my textbook but I wanted to see it in action. Gray Code is very special in that while it goes through it’s sequence, only one bit changes after each sequence. Notice how only one waveform at a time is changing from high to low at any time.
According to the book this is very useful for Shaft Position Encoders (hopefully that means something to somebody) since if there is more bits changing at one time than the error or failure of the device increases, so Gray Code is used to help minimize error as much as possible (and probably other uses too).