1 jadval
Rang
|
R
|
G
|
B
|
Qizil
|
255
|
0
|
0
|
Olov rang
|
255
|
125
|
0
|
Sariq
|
255
|
255
|
0
|
Yashil
|
0
|
255
|
0
|
Havo rang
|
0
|
255
|
255
|
Ko’k
|
0
|
0
|
255
|
Siyox rang
|
255
|
0
|
255
|
Yorug’lik diodimiz 7 ta asosiy ranglarning hammasidan o’tib qizil rangdan siyox ranggachan tovlanishi kerak. Kamalakning xohishiy oraliqdagi ranglarni hisoblash algoritmi quyidagicha:
1.Hisoblashning boshlang’ich nuqtasi qilib qizil rangni qabul qilamiz (255, 0, 0).
2. G ko’k tarkibli qiymatni sekin asta oshirib boriladi, toki olov rang qiymatiga yetmagunchaga (255, 125, 0), so’ng sariq ranggachan (255, 255, 0).
3. R qizil tarkibli qiymatni sekin asta yashil rang qiymatigachan (0, 255, 0)kamaytiriladi.
4. V ko’k tarkibli qiymatnisekin asta havo rang qiymatigachan (0, 255, 255) kamaytiriladi.
5.G yashil tarkibli qiymatnisekin asta ko’krang qiymatigachan (0, 0, 255)kamaytiriladi.
6.R qizil tarkibli qiymatni sekin asta siyox rang qiymatgachan (255, 0, 255) oshiriladi.
7. Bir oz sukut saqlab va 1 qadamga o’tiladi. Sketch tarkibi 8-listingda berilgan.
8 -listing
const int RED=11; // RGB- yorug’lik diodining qizil oyoqchasining chiqishi
const int GREEN=10; // RGB- yorug’lik diodining yashil oyoqchasining chiqishi
const int BLUE=9; // RGB- yorug’lik diodining ko’k oyoqchasining chiqishi
int red; // R-tarkibli rangni saqlash uchun o’zgaruvchi
int green; // G-tarkibli rangni saqlash uchun o’zgaruvchi
int blue; // V-tarkibli rangni saqlash uchun o’zgaruvchivoidsetup()
void setup()
{;}
void loop ()
{
// qizildan sariqqa
red=255;green=0;blue=0;
for(green=0;green<=255;green++)
setRGB(red,green,blue); // sariqdan yashilga
for(red=255;red>=0;red--)
setRGB(red,green,blue); // yashildan ko’kga
for(blue=0;blue<=255;blue++)
setRGB(red,green,blue); // havo rangdan ko’kga
for (green=255; green>=0; green--)
setRGB(red,green,blue); // ko’kdan siyox ranggachan
for(red=0;red<=255;red++)
setRGB(red,green,blue);
delay(2000);
}
// RGB– yorug’lik diod rangini o’rnatish funksichsi
void setRGB(int r,int g,int b)
{
analogWrite(RED,r);
analogWrite(GREEN, g);
analogWrite(BLUE,b);
delay(10);
}
Xulosa
Men bu labaratoriya ishini bajarish davomida RGB yoruglik diodidan foydalanib Arduino beradigan 5v yoki 0 ning qiymatini AnalogWrite funksiyasi yordamida raqamli ravishda 0-255 oraliqda o’zzgartirib uning qiymatlari o’zgarishiga mos ravishda diodning rangi o’zgarishini kuzatdim.
Dostları ilə paylaş: |