අපි රතු, කොළ සහ නිල් බල්බ 3ක් භාවිතයෙන් වර්ණාවලියක් සහිත බල්බයක් නිර්මාණය කරමු.
රතු සහ නිල් දම්පාටද , කොල සහ නිල් කහපාටද ලබාදෙන බව අප දනිමු. අප සාදන පරිපථයේ වර්ණාවලිය සැදෙන්නේ රතු, නිල් හා කොල මිශ්රණයකිනි. ඒවා මූලික වර්ණ වේ.
සෑම මූලික වර්ණයකට දීප්ති මට්ටම් 0-255 ක් ඇත.
මේ අනුව වර්ණ 3කින් අපට වර්ණ 65335 ලබාගත හැක.
(255 * 255 * 255 -65335 වේ)
මෙම වර්ණාවලිය ලබාගැනීමට
අප රතු, නිල්බ හා කොළ වර්ණ එක් එක් දීප්ති ප්රමාණයකින් මිශ්ර කරමු.
එයට RGB අගය කියමු.
සෑම මූලික වර්ණයකට දීප්ති මට්ටම් 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 ආවරණය වන අයුරින් තබන්න.

සුදු ටිෂූ කඩදාසියකින් බටයක් සාදා එය බල්බ 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); //තත්පරයක් ඉන්න
}
}
ශිල්ප 64