Till KTH:s startsida Till KTH:s startsida

Visa version

Version skapad av William Sandqvist 2015-04-19 15:37

Visa < föregående | nästa >
Jämför < föregående | nästa >

RGB-LED (sw)

Valfri färg med RGB-ljusdiod

minirgbboard_large.png

PWM pulsdrift

pwmprincip.png

rgbled.gif   diffusionsfilter.jpg
Man kan få belysning i valfri färg med en trefärgs lysdiod, KTL050RGB.
Med ett diffusionsfilter får man de tre färgerna att sammansmälta till en.

RBG lysdioder med gemensam katod CC har ben 2 anslutet till jord. De ska ha "1" på ben 1 3 4 för att lysa. RGB lysdioder med gemensam anod CA har ben 2 anslutet till matningsspänningen (+5V). De skall ha "0" på ben 1 3 4 för att lysa.

Medan mikrostyrkretsar ofta har inbyggda AD-omvandlare, är det mer sällan som de också har DA-omvandlare. Anledningen till detta är att det finns en genväg att digitalt framställa analoga signaler - PWM, Pulse Width Modulation, pulsbreddsmodulering.

En pulsbreddsmodulerad signal består av en snabb följd av pulser. När det gäller LED-belysning är ögat "trögt" och hinner inte uppfatta att signalen ändrar sig, utan registrerar signalens medelvärde som om det vore en konstant nivå.

/*  color.c  display 8 colors with RGB-lightdiode  */
/* B Knudsen Cc5x C-compiler - not ANSI-C */
#include "16F690.h"
#pragma config |= 0x00D4 
#define ON 0   /* LEDs are commom anode, active low */
#define OFF 1
 
void main( void)
{
  TRISC.0=0;
  TRISC.1=0;
  TRISC.2=0;
  
  /* colormix change proportions for different mix */
  char R_Duty = 128;
  char G_Duty = 128;
  char B_Duty = 128;
  
  char colormix = 0;
  OPTION = 0b11000101;    /* Timer0 Prescaler divide by 64   */
 
  while(1)
    {
       /* PWM-generation   */
       if (TMR0 < R_Duty) colormix.0 = ON; /* Red PWM   */
       else colormix.0 = OFF;
       
       if (TMR0 < G_Duty) colormix.1 = ON; /* Green PWM */
       else colormix.1 = OFF;

       if (TMR0 < B_Duty) colormix.2 = ON; /* Blue PWM  */
       else colormix.2 = OFF;

       PORTC = colormix;
    }
}

/* *********************************** */
/*            HARDWARE                 */
/* *********************************** */

/*
               ___________  ___________  
              |           \/           |
        +5V---|Vdd     16F690       Vss|---GND 
              |RA5        RA0/AN0/(PGD)|
              |RA4            RA1/(PGC)|
              |RA3/!MCLR/(Vpp)  RA2/INT|
              |RC5/CCP              RC0|->- LED-B
              |RC4                  RC1|->- LED-R
              |RC3                  RC2|->- LED-G
              |RC6                  RB4|
              |RC7               RB5/Rx|
              |RB7/Tx               RB6|
              |________________________|

*/

c.gif color.c      ( text.gif color.txt )


Teman

  • Wakeup lamp, morgon och kvällsbelysning.
  • Visualisera hur het processorn är, starta med iskalla färger och gå till heta färger.
  • Återskapa skenet från en brasa ...
  • Visa färg efter färkod.
  • Lysa och ställa in en önskad färg med pot, processorn anger färgens (beställnings-) nummer.