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. The control of the RGB led is made with PWM (Pulse Width Modulation), because PIC18F25K20 only have 2 PWM outputs (Hardware), I did the PWM by software to have 3 PWM outputs for that I use TIMER0 and for the Manual mode I use IOC (interrupt on change). More: 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 (1) 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 won’t 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.
The project utilizes a Piranha Super-flux RGB LED configured as a common anode device, interfaced with a PIC18F25K20 microcontroller. The primary objective is to generate various color combinations through two operational modes: an automatic mode that cycles through a pre-defined sequence stored in the microcontroller's memory and a manual mode that allows the user to select from seven distinct colors.
The RGB LED is controlled using Pulse Width Modulation (PWM) techniques. The PIC18F25K20 microcontroller is equipped with only two hardware PWM outputs. To achieve control over all three colors (Red, Green, and Blue) of the RGB LED, software PWM techniques are implemented. This is accomplished by leveraging TIMER0 to generate the necessary timing signals for PWM control, effectively allowing the microcontroller to simulate additional PWM outputs.
For user interaction, push buttons are employed to switch between the automatic and manual modes, as well as to choose specific colors in manual mode. A significant challenge arises from the mechanical characteristics of push buttons, which can lead to erratic state transitions due to bouncing. This bouncing results in multiple high and low states being detected during a single press, potentially causing unintended behavior in the circuit.
To mitigate this issue, a software-based de-bouncing algorithm is implemented. This approach avoids additional costs associated with hardware solutions, such as RC delay circuits or Schmitt triggers. The software algorithm ensures that only a clean, single transition is recognized for each button press, thereby enhancing the reliability of user inputs and ensuring smooth operation of the color selection functionality.
Overall, the design emphasizes efficient use of microcontroller resources, effective user interaction through intuitive controls, and robust handling of mechanical switch behavior, making it suitable for applications requiring dynamic RGB color control.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. The control of the RGB led is made with PWM(Pulse With Modulation), because PIC18F25K20 only have 2 PWM outputs (Hardware), I did the PWM by software to have 3 PWM outputs for that I use TIMER0 and for the Manual mode I use IOC(interrupt on change).
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 (1) 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 won?t 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. 🔗 External reference
This circuit diagram represents a radio-controlled system, commonly used in toy car applications for children. The circuit consists of two main parts: the transmitter and the receiver. The transmitter generates radio signals using an oscillator circuit formed by transistor...
This is a three-mode lamp dimmer circuit with touch control. This circuit can be used to control a lamp in three operation modes: dim, off, and bright. A NE555 timer is utilized in the design.
The three-mode lamp dimmer circuit...
The core of the switch controller is an Arduino Nano microcontroller, which will serve as the interface between the dashboard switches, wireless steering wheel buttons, and the vehicle's lighting, indicators, windscreen wipers, and DigiDash2 GPS stopwatch. This setup facilitates...
This indicator lets you see how much power an amplifier produces. The circuit uses an LM 3915, the logarithmic variation of the known IC LED VU Meter LM 3914. The circuit is connected directly to the speaker output of...
This circuit is a stable frequency counter with an accuracy of 5 significant digits. It operates within a frequency range of 0 to 30 MHz and has an input sensitivity greater than 100 mV. The probe connects to the...
It is essential to draw a circuit using a layout and conventions that are universally recognized.
In electronic circuit design, adherence to standardized symbols and layout conventions is crucial for effective communication among engineers and technicians. A well-drawn schematic diagram...
We use cookies to enhance your experience, analyze traffic, and serve personalized ads.
By clicking "Accept", you agree to our use of cookies.
Learn more