2.3-Laboratoriya mashg’uloti RGB-yorug‘lik diodi. Impuls kengligining modulyasiyasi. Ishdan maqsad. Arduinoda RGB-yorug‘lik diodini boshqarish hamda impuls kengligining modulyasiyasi haqida amaliy tushunchalarga ega bo’lish.Ishni bajarish uchun kerakli jihozlar:
1 RGB LED 10 mm x 1 ta;
Arduino Uno R3 platasi x 1ta;
270 ohm qarshilik x 3 ta;
Breadboard (Doska)x 1;
Ulashuchun similar; USB kabeli x 1; Kompyuter x 1.
Ishni bajarish uchun kerakli dasturiy ta’minot: Arduino IDE tinkercat.com web sayti
1.RGB-yorug‘likdiodi haqida
A rduino bilan RGB (Red Green Blue) LEDni boshqarish uchun analogWrite funktsiyasidan foydalanamiz. Bir qarashda RGB LEDlari odatdagi LEDlar bilan bir xil ko'rinadi, lekin aslida ular ichida uchta LED o'rnatilgan bo’lib biri qizil, biri yashil va biri ko'k. Har birining yorqinligini boshqarish orqali siz LED rangini boshqarishingiz mumkin. Ya'ni, biz har bir LEDning yorqinligini moslashtiramiz va chiqishda kerakli rangni olamiz. Buning uchun siz o'zgaruvchan rezistorlardan foydalanishingiz mumkin. Ammo natijada sxema juda murakkab bo'ladi.
RGB-yorug‘likdiodi
2- rasm. Ulanish diagrammasi
RGB LED-dagi umumiy anot ikkinchi eng uzun kontaktdir. Ushbu pinni erga (gnd) ulaymiz. Haddan tashqari o’zgaruvchi elektr oqimlarning oldini olish uchun har bir LED o'z 270 omli qarshilik orqali ulanadi. Ushbu rezistorlar katodlar (qizil, yashil va ko'k) va bizning Arduino-dagi boshqaruv pimlari orasidagi elektronga o'rnatiladi.
Agar siz umumiy katot o'rniga oddiy anodliRGB LED dan foydalansangiz, LEDdagi eng uzun pin Gnd pin o'rniga +5 V pinga ulanadi.
Arduino platasi, RGB led va BreadBoardning ulanishi (RBB da)
Ranglar
Biroz nazariya: biz uchta asosiy rangni aralashtirib, yangi soyalarni ko'rishimiz mumkin, chunki bizning ko'zimizda uchta turdagi retseptorlar mavjud (qizil, yashil va ko'k uchun).
N atijada, sizning ko'zingiz va miyangiz ushbu uchta rangning to'yinganligi haqidagi ma'lumotlarni qayta ishlaydi va ularni boshqa spektr soyalariga aylantiradi. Ya'ni, uchta LEDni bir vaqtning o'zidaishlatish, biz ko'zimizni aldayotganga o'xshaymiz. Xuddi shu fikr televizorlarda ham qo'llaniladi, bu yerda LCD alohida qizil piksellarni hosil qilish uchun juda yaqin qizil, yashil va ko'k nuqtalardan iborat.
Agar biz barcha LEDlarni bir xil nashrida qilib qo'ysak, uni oq rangda yonib turganini ko'ramiz. Agar biz ko'k LEDni o'chirib qo'ysak va xuddi shu yorqinlik bilan faqat qizil va yashil chiroq yonib tursa, biz sariq rangga ega bo'lamiz. Ranglarnixohlagancha aralashtirib, har bir LEDning yorqinligini alohida boshqarishimiz mumkin.
Qora rang yorug'lik yo'qligidan boshqa narsa emasligi sababli, siz uni ololmaysiz. Qora rangning eng yaqin soyasi - bu LEDlar butunlay o'chirilgan payt.
Quyidagi Arduinoda RGB ranglarni boshqarish uchun yozilgan kod bilan tanishib chiqishingiz mumkin: int redPin = 11; int greenPin = 10; int bluePin = 9; //#define COMMON_ANODE void setup() { pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT);} void loop(){ setColor(255, 0, 0); delay(1000); setColor(0, 255, 0); delay(1000); setColor(0, 0, 255); delay(1000); setColor(255, 255, 0); delay(1000); setColor(80, 0, 80); delay(1000); setColor(0, 255, 255); delay(1000);} void setColor(int red, int green, int blue){ #ifdef COMMON_ANODE red = 255 - red; green = 255 - green; blue = 255 - blue; #endif analogWrite(redPin, red); analogWrite(greenPin, green); analogWrite(bluePin, blue); }