In this project it was used the Piranha Super-flux RGB Led of common anode, and the PIC18F25K20, in order to generate combinations of colors. It has two function modes, automatic that generate the color sequence that is stored in the μC memory, and the manual mode in which you can select one of the seven possible colors.
In this project I use push buttons to change between modes and to change the colors. But if we use the button as in the circuit we have a problem. The problem with this configuration, due to the mechanical nature of any switch that may contains spring return action of some kind, there wont be a clean transition from a state to another, but instead there will be a series of high and low states spikes.
To solve that problem we have to implement a de-bouncing system, it can be done by hardware or software. We can use a RC
delay circuit or it can be done with a schmitt trigger, but both ways will increase the price. So I done by software the de-bounce.