In dit project gaan we 5 RGB (Rood Groen Blauw) LED's koppelen aan Arduino Uno. Deze LED's zijn parallel geschakeld om het pincode-gebruik van Uno te verminderen.
Een typische RGB-LED wordt getoond in onderstaande afbeelding:
De RGB-LED heeft vier pinnen, zoals weergegeven in de afbeelding.
PIN1: kleur 1 minpool of kleur 1 pluspool
PIN2: gemeenschappelijk positief voor alle drie de kleuren of gemeenschappelijk negatief voor alle drie de kleuren
PIN3: Kleur 2 minpool of kleur 2 pluspool
PIN4: Kleur 3 minpool of kleur 3 pluspool
Er zijn dus twee soorten RGB-leds, een is een algemeen kathodetype (gemeenschappelijk negatief) en een ander is een algemeen anodetype (algemeen positief). In CC (Common Cathode of Common Negative) zijn er drie positieve aansluitingen die elke aansluiting een kleur vertegenwoordigen en een negatieve aansluiting die alle drie de kleuren vertegenwoordigt. Het interne circuit van een CC RGB-led kan worden weergegeven zoals hieronder.
Als we willen dat ROOD hierboven aan is, moeten we de RODE LED-pin van stroom voorzien en het gemeenschappelijke negatief aarden. Hetzelfde geldt voor alle leds. In CA (Common Anode of Common Positive) zijn er drie negatieve aansluitingen die elke aansluiting een kleur vertegenwoordigen en een positieve aansluiting die alle drie de kleuren vertegenwoordigt. Het interne circuit van een CA RGB-led kan worden weergegeven zoals weergegeven in afbeelding.
Als we willen dat ROOD hierboven aan is, moeten we de RODE LED-pin aarden en het gemeenschappelijke pluspunt voeden. Hetzelfde geldt voor alle leds.
In ons circuit gaan we het type CA (Common Anode of Common Positive) gebruiken. Voor het aansluiten van 5 RGB-LED's op Arduino hebben we 5x4 = 20 PINS nodig, door dit PIN-gebruik terug te brengen tot 8 door RGB-LED's parallel aan te sluiten en door een techniek te gebruiken die multiplexing wordt genoemd.
Componenten
Hardware: UNO, voeding (5v), 1KΩ weerstand (3 stuks), RGB (rood groen blauw) LED (5 stuks)
Software: Atmel studio 6.2 of Aurdino nightly.
Circuit en werkuitleg
De circuitaansluiting voor RGB LED Arduino-interface wordt weergegeven in de onderstaande afbeelding.
Voor het lastige deel, stel dat we de RODE led in SET1 en de GROENE led in SET2 willen draaien. We voeden de PIN8 en PIN9 van UNO, en aarding PIN7, PIN6.
Met die stroom hebben we ROOD in de eerste SET en GROEN in de tweede SET ON, maar we zullen GROEN hebben in SET1 en ROOD in SET2 ON ermee. Door eenvoudige analogie kunnen we zien dat alle vier de LED's het circuit sluiten met de bovenstaande configuratie en dus allemaal gloeien.
Om dit probleem op te lossen, schakelen we dus maar één SET tegelijk in. Zeg bij t = 0m SEC, SET1 is ingesteld op ON. Op t = 1m SEC, wordt SET1 op OFF afgestemd en wordt SET2 op ON gezet. Opnieuw op t = 6m SEC, wordt SET5 uitgeschakeld en SET1 ingeschakeld. Dit gaat door.
Hier is de truc: het menselijk oog kan een frequentie van meer dan 30 Hz niet vastleggen. Dat wil zeggen als een LED continu AAN en UIT gaat met een snelheid van 30Hz of meer. Het oog ziet de LED als continu AAN. Dit is echter niet het geval. De LED zal constant AAN en UIT gaan. Deze techniek wordt multiplexen genoemd.
Simpel gezegd zullen we elke gemeenschappelijke kathode van 5 SETs van 1 milli seconde voorzien, dus in 5 milli seconde hebben we de cyclus voltooid, daarna begint de cyclus weer bij SET1, dit gaat voor altijd door. Omdat de LED-sets te snel AAN en UIT gaan. De mens voorspelt dat alle SET's altijd AAN zijn.
Dus als we SET1 inschakelen op t = 0 milli seconde, aarden we de RODE pin. Op t = 1 milli seconde voeden we de SET2 en aarden de GROENE pin (op dit moment worden ROOD en BLAUW HOOG omhoog getrokken). De lus gaat snel en het oog ziet RODE gloed in EERSTE SET en GROENE gloed in TWEEDE SET.
Dit is hoe we een RGB-led programmeren, we laten alle kleuren langzaam in het programma oplichten om te zien hoe multiplexen werkt.