අපි රතු, කොළ සහ නිල් බල්බ 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); //තත්පරයක් ඉන්න } }