Start Elkretssimulator Karnaughdiagram Quine McCluskey


RGB Led



En RGB -lysdiod är alltså 3 stycken lysdioder i samma bygge. Röd, Grön och Blå därav namnet RGB.

Gemensam Anod eller Katod ?

Det finns 2 typer av RGB -lysdioder. Den ena har gemensam anod och den andra gemensam katod. Den praktiska skillnaden blir att man tänder en lysdiod i den ena modulen genom att ansluta en spänning till en lysdiod, medans den andra sorten tänds genom att man ansluter en lysdiod till 0 volt.


RGB -Modul

En RGB -modul innehåller en RGB -lysdiod med 3 stycken förmonterade resistanser på benen, för att begränsa strömmen genom lysdioderna, så att den enkelt går att ansluta till t.ex. en arduino. Den sorten jag har att leka med här verkar ha gemensam katod så i mitt fall skall den gemensamma anslutningen gå till GND. Det betyder att jag tänder en lysdiod med en positiv spänning ("HIGH").



Funktion

Den korta versionen hur det fungerar ser du nedan. Dvs, tänder vi den röda blir det såklart rött. Tänder vi den blå, blir det blått. Men tänder vi 2 av av färgerna samtidigt så blandas dessa och vi får en ny 3:e färg. Så fungerar pixlarna i våra mobiltelefoner eller våra datormonitorer eller TVn. Genom att blanda rött, grönt och blått kan vi framställa de flesta synliga färger.



I en enkel testversion av en RGB -lysdiod kan vi prova att tända olika kombinationer av dessa lysdioder. I en mer avancerad testversion kan vi prova vad som händer om vi blandar olika styrkor av de olika färgerna. Dvs, vi tänder den röda bara delvis med ger full styrka på grönt. Vad får vi då?

Uppkoppling

Obervera att du givetvis inte behöver en RGB -modul för att experimentera här. Går lika bra med en RGB -lysdiod och några förkopplingsmotstånd.

Med gemensam katod så ser uppkopplingen ut såhär.


Med gemensam anod så ser uppkopplingen ut såhär.


Den modul jag har, med gemensam katod, kan kopplas upp t.ex. såhär.


Kod

Följande kod ger då grönt ljus. Tänder vi iställer rött eller blått får vi såklart dessa färgerna istället.

#define RED 11
#define GREEN 9
#define BLUE 10

void setup() 
{
  Serial.begin(9600);
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);

  digitalWrite(GREEN, HIGH);
} 

void loop() 
{

}




Så vad händer om vi tänder röd och grön samtidigt?

#define RED 11
#define GREEN 9
#define BLUE 10

void setup() 
{
  Serial.begin(9600);
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);

  digitalWrite(RED, HIGH);
  digitalWrite(GREEN, HIGH);
} 

void loop() 
{

}

Det lyser gult.



Genom att använda analogWrite så kan vi välja att blanda nyanser av färger lite mer sofistikerat.

#define RED 11
#define GREEN 9
#define BLUE 10

void setup() 
{
  Serial.begin(9600);
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);

  analogWrite(RED, 100);
  analogWrite(GREEN, 5);
} 

void loop() 
{

}




Nedan kod skapar en effekt där färgerna vandrar över hela regnbågen i en evig loop...

#define RED 11
#define GREEN 9
#define BLUE 10

// 
// hue 0-1
// sat 0-1
// val 0-1
//
int *v;

float hue = 1;
float sat = 1;
float val = 1;

int * HSVtoRGB(float h, float s, float v) 
{
    static int vr[3];
    int i;
    float r,g,b,f,p,q,t;
    i=(int)(h*6);
    f=h*6-(float)i;
    p=v*(1-s);
    q=v*(1-f*s);
    t=v*(1-(1-f)*s);
    switch (i%6) 
    {
        case 0: r=v, g=t, b=p; break;
        case 1: r=q, g=v, b=p; break;
        case 2: r=p, g=v, b=t; break;
        case 3: r=p, g=q, b=v; break;
        case 4: r=t, g=p, b=v; break;
        case 5: r=v, g=p, b=q; break;
    }
    vr[0]=(int)(r*255);
    vr[1]=(int)(g*255);
    vr[2]=(int)(b*255);    
    return vr;
}

void setup() 
{
  Serial.begin(9600);
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
} 

void loop() 
{

hue += 0.001;
if(hue>1)
{
  hue = 0.001;
}
v = HSVtoRGB(hue, sat, val);

int red = v[0];
int green = v[1];
int blue = v[2];

analogWrite(RED, red);
analogWrite(GREEN, green);
analogWrite(BLUE, blue);
delay(5);
}

Det ser tjusigare ut i verkligheten, men nedanstående animerade gif ger en vink hur ovan snurra blir.



Vill du styra många sådana här RGB -lysdioder så kan du snegla på följande projekt, en RGB-ljusstake styrd med WS2811

Lycka till!


Annons
Egen domän, epost & webbsida
Från 120 + 140 = 260 kr per år + moms för Brons -konto med .com -domän.

Bästa sättet att lära sig något, är att 1) ha något att Meka med 2) Meka.

Detsamma gäller förstås internet och webbsidor. Vill du lära dig göra roliga saker, t.ex. en fixa en egen hemsida på en egen domän eller installera en hemma-server på egen domän? Skaffa ett konto på ett billigt hjälpsamt webbhotell, där du kan ställa många dumma frågor till supporten. Välkommen!

Kontrollpanel (Direct Admin), där du kan lägga till epostadresser, installera wordpress för en företagssida eller privat blogg, lägga till subdomäner, tanka upp filer, ändra DNS -pekare och massor med annat. Behöver du hjälp fixa webbsida? Vi hjälper dig. Börjar ditt nuvarande webbhotell bli störande dyrt? Hör av dig, vi kan troligtvis hjälpa dig med flytten.
Karla Hosting AB • https://karlahosting.se