I dette projekt skal vi interface 5 RGB (rødgrønblå) lysdioder til Arduino Uno. Disse lysdioder er tilsluttet parallelt for at reducere PIN-brug af Uno.
En typisk RGB-LED er vist i nedenstående figur:
RGB-LED'en har fire ben som vist i figuren.
PIN1: Farve 1 negativ terminal eller farve 1 positiv terminal
PIN2: Fælles positiv for alle tre farver eller fælles negativ for alle tre farver
PIN3: Farve 2 negativ terminal eller farve 2 positiv terminal
PIN4: Farve 3 negativ terminal eller farve 3 positiv terminal
Så der er to typer RGB-lysdioder, den ene er almindelig katodetype (almindelig negativ) og den anden er almindelig anodetype (almindelig positiv) type. I CC (Common Cathode eller Common Negative) vil der være tre positive terminaler, hver terminal repræsenterer en farve og en negativ terminal, der repræsenterer alle tre farver. Det interne kredsløb i en CC RGB LED kan vises som nedenfor.
Hvis vi ønsker, at RØD skal være tændt i ovenstående, er vi nødt til at tænde for den RØDE LED-pin og jorde det fælles negative. Det samme gælder for alle lysdioder. I CA (Common Anode eller Common Positive) vil der være tre negative terminaler, hver terminal repræsenterer en farve og en positiv terminal, der repræsenterer alle tre farver. Det interne kredsløb i en CA RGB LED kan vises som vist i figur..
Hvis vi ønsker, at RØD skal være tændt i ovenstående, er vi nødt til at jordforbinde den RØDE LED-pin og tænde for det fælles positive. Det samme gælder for alle lysdioder.
I vores kredsløb skal vi bruge typen CA (Common Anode eller Common Positive). For at forbinde 5 RGB-lysdioder til Arduino har vi normalt brug for 5x4 = 20 PINS, da vi reducerer denne PIN-brug til 8 ved at forbinde RGB-LED'er parallelt og ved hjælp af en teknik kaldet multiplexing.
Komponenter
Hardware: UNO, strømforsyning (5v), 1KΩ modstand (3 stykker), RGB (rødgrøn blå) LED (5 stykker)
Software: Atmel studio 6.2 eller Aurdino om natten.
Kredsløb og arbejdsforklaring
Kredsløbsforbindelsen til RGB LED Arduino-interface er vist i nedenstående figur.
Lad os nu sige, at vi vil dreje den RØDE LED i SET1 og GRØN LED i SET2. Vi styrer PIN8 og PIN9 for UNO og slår PIN7, PIN6 til jorden.
Med dette flow vil vi have RØDT i første SET og GRØNT i andet SET ON, men vi vil have GRØNT i SET1 og RØDT i SET2 ON med det. Ved simpel analogi kan vi se alle fire lysdioder lukke kredsløbet med ovenstående konfiguration, og så lyser de alle sammen.
Så for at eliminere dette problem tænder vi kun et SET ad gangen. Sig ved t = 0m SEC, SET1 er tunet TIL. Ved t = 1 m SEC er SET1 OFF og SET2 ON. Igen ved t = 6m SEC slukkes SET5 og SET1 tændes. Dette fortsætter.
Her er tricket, det menneskelige øje kan ikke fange en frekvens på mere end 30 Hz. Det er, hvis en LED kontinuerligt tændes og slukkes med en hastighed på 30 Hz eller mere. Øjet ser lysdioden kontinuerligt TÆNDT. Dette er imidlertid ikke tilfældet. LED'en tænder og slukker konstant. Denne teknik kaldes multiplexing.
Kort sagt vil vi drive hver fælles katode på 5 SETs 1milli sekund, så om 5milli sekund vil vi have afsluttet cyklussen, derefter starter cyklussen fra SET1 igen, dette fortsætter for evigt. Da LED-indstillingerne tændes og slukkes for hurtigt. Mennesket forudsiger, at alle SET'erne er TIL hele tiden.
Så når vi forsyner SET1 med t = 0 milli sekund, jorder vi den RØDE stift. Ved t = 1 milli sekund styrer vi SET2 og jorder den GRØNNE stift (på dette tidspunkt trækkes RØD og BLÅ op HØJ). Sløjfen går hurtigt, og øjet ser RØD glød i FØRSTE SÆT og GRØN glød i ANDET SÆT.
Sådan programmerer vi en RGB LED, vi lyser langsomt alle farverne i programmet for at se, hvordan multiplexing fungerer.