වර්ණාවලි ලාම්පුව
 
අපි රතු, කොළ සහ නිල් බල්බ 3ක් භාවිතයෙන් වර්ණාවලියක් සහිත බල්බයක් නිර්මාණය කරමු.
රතු සහ නිල් දම්පාටද , කොල සහ නි‍ල් කහපාටද ලබාදෙන බව අප දනිමු. අප සාදන පරිපථයේ වර්ණාවලිය සැදෙන්නේ රතු, නිල් හා කොල මිශ්‍රණයකිනි. ඒවා මූලික වර්ණ වේ.

සෑම මූලික වර්ණයකට දීප්ති මට්ටම් 0-255 ක් ඇත.
මේ අනුව වර්ණ 3කින් අපට වර්ණ 65335 ලබාගත හැක.
(255 * 255 * 255 -65335 වේ)

මෙම වර්ණාවලිය ලබාගැනීමට
අප රතු, නිල්බ හා කොළ වර්ණ එක් එක් දීප්ති ප්‍රමාණයකින් මිශ්‍ර කරමු.
එයට RGB අගය කියමු.
RGB 255, 0, 0 රතු
RGB 0, 255, 0 කොළ
RGB 0, 0, 255 නිල්
RGB 255, 255, 0 කහ
RGB 255, 0, 255 දම්
RGB 255, 255, 255 සුදු 
පරිපත සැලසුම

සුදු ටිෂූ කඩදාසියකින් බටයක් සාදා එය බල්බ 3 ආවරණය වන අයුරින් තබන්න.
// අර්ථ දැක්වීම්
float RGB1[3]; //අවයව 3 ක දශම සංඛ්‍යා අරාව 
float RGB2[3]; //අවයව 3 ක දශම සංඛ්‍යා අරාව 
float INC[3]; //අවයව 3 ක දශම සංඛ්‍යා අරාව 
int red, green, blue; // වර්ණ
int RedPin = 11; //රතු අග්‍රය
int GreenPin = 10; //කොළ අග්‍රය
int BluePin = 9; //නිල් අග්‍රය

void setup()
{
 Serial.begin(9600); // සන්නිවේදන සැකසුම
 //අහඹු අංක ජනකය ආරම්භ කිරීම 
 randomSeed(analogRead(0)); // අහඹු අගයක් දේ
 // වර්ණ අනුයුක්ත කිරීම
 RGB1[0] = 0; 
 RGB1[1] = 0;
 RGB1[2] = 0;

 //අහඹු වර්ණ අනුයුක්ත කිරීම
 RGB2[0] = random(256); //0-256 දක්වා අගයක්
 RGB2[1] = random(256);
 RGB2[2] = random(256);
}
//චක්‍රය
void loop()
{
 randomSeed(analogRead(0)); //අහඹු අගය ජනකය ආරම්භ කරන්න

 for (int x=0; x<3; x++) {    
     //බල්බ දෙකක අගයන් වලින් තෙවැන්න ලබාගනී
     INC[x] = (RGB1[x] - RGB2[x]) / 256; 
  }

 for (int x=0; x<256; x++) { // 256 වාරයක් කරන්න
    red = int(RGB1[0]); //රතු අගය ගන්න
    green = int(RGB1[1]);//කොළ අගය ගන්න
    blue = int(RGB1[2]);//නිල් අගය ගන්න
    
 analogWrite (RedPin, red);//රතු ලියන්න
 analogWrite (GreenPin, green);//කොළ ලියන්න
 analogWrite (BluePin, blue);//නිල් ලියන්න
 delay(100); // මිලි තත්පර 100 ක් ඉන්න
 
//RGB1 අරාව INC අරාවෙන් පුරවන්න
 RGB1[0] -= INC[0];
 RGB1[1] -= INC[1];
 RGB1[2] -= INC[2];

 }

 //RGB2 අහඹු පිරවුම
 for (int x=0; x<3; x++) {
    RGB2[x] = random(556)-300;
    //අගය 0-255 අතර විය යුතුයි, 
    //නැතිනම් 0 හෝ 255 ලබාදේ
    RGB2[x] = constrain(RGB2[x], 0, 255);
    delay(1000); //තත්පරයක් ඉන්න
 }
}
(c) Shilpa Sayura Foundation 2006-2017