12- Laboratoriya mashg’uloti.
Potensiometr. RGB-yorug‘lik diodini. Impuls kengligini modulatsiyasi.
Ishdan maqsad: RGB yorug’lik diodini boshqarishni o’rganish.
Nazariy qism
Bir qarashda RGB LEDlari odatdagi LEDlar bilan bir xil ko'rinishga ega, ammo aslida ular ichida uchta LED o'rnatilgan: biri qizil, biri yashil va ha, biri ko'k. Har birining yorqinligini boshqarish orqali siz LED rangini boshqarishingiz mumkin.
Ya'ni, biz har bir LEDning yorqinligini sozlaymiz va chiqishda kerakli rangni olamiz, go'yo u rassom palitrasi kabi yoki siz o'zingizning pleeringizdagi chastotalarni sozlayotgandek. Buning uchun siz o'zgaruvchan rezistorlardan foydalanishingiz mumkin . Ammo natijada sxema juda murakkab bo'ladi. Yaxshiyamki, Arduino bizga analogWrite funktsiyasini taklif qiladi. Agar "~" belgisi bilan belgilangan taxtadagi kontaktlardan foydalansak, mos keladigan LEDga etkazib beriladigan kuchlanishni tartibga solishimiz mumkin.
Kerakli uskunalar:
Arduino Uno;
USB kabeli;
Prototiplar taxtasi;
Daddy-Daddy simlari - 15 dona;
Rezistorlar 220 Ohm - 8 dona;
RGB LED 10 mm;
RGB LED-dagi umumiy anot ikkinchi eng uzun kontaktdir. Ushbu pinni erga (gnd) ulaymiz.
Haddan tashqari oqimlarning oldini olish uchun har bir LED o'z 270 ohmli qarshilikka muhtoj. 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 anodli RGB LED dan foydalanayotgan bo'lsangiz, LEDdagi eng uzun pin gnd pin o'rniga +5 V pinga ulanadi.
int red_light_pin= 11;
int green_light_pin = 10;
int blue_light_pin = 9;
void setup() {
pinMode(red_light_pin, OUTPUT);
pinMode(green_light_pin, OUTPUT);
pinMode(blue_light_pin, OUTPUT);
}
void loop() {
RGB_color(255, 0, 0); // Red
delay(1000);
RGB_color(0, 255, 0); // Green
delay(1000);
RGB_color(0, 0, 255); // Blue
delay(1000);
RGB_color(255, 255, 125); // Raspberry
delay(1000);
RGB_color(0, 255, 255); // Cyan
delay(1000);
RGB_color(255, 0, 255); // Magenta
delay(1000);
RGB_color(255, 255, 0); // Yellow
delay(1000);
RGB_color(255, 255, 255); // White
delay(1000);
}
void RGB_color(int red_light_value, int green_light_value, int blue_light_value)
{
analogWrite(red_light_pin, red_light_value);
analogWrite(green_light_pin, green_light_value);
analogWrite(blue_light_pin, blue_light_value);
}
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). Natijada, 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'zida ishlatish, biz ko'zimizni aldayotganga o'xshaymiz. Xuddi shu fikr televizorlarda ham qo'llaniladi, bu erda 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.
Ranglarni xohlagancha 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.
Xulosa:
Bugun biz RGB led va LEDni arduinoga ulashni o’rgandik. RGB led orqali burchakni ham o'lchash mumkin va analog axborot bo'lganligi tufayli digitalga nisbatan aniqroq bo'lad Bu kelajakda bizga ko'p marta foydali bo'lgan va Arduinoda robotni boshqarish uchun ishlatilishi mumkin bo'lgan asosiy sxemalardan biridir. bizning kelajakdagi robotimizda potensiometrni o’zgartirish bilan turli harakatlar bo'lishi mumkin.
Do'stlaringiz bilan baham: |