613 –guruh talabasi Ahmadjonov Subhonjon Laboratoriya ishi № Potensiometr. Laboratoriya ishining maqsadi
Download 51.57 Kb.
|
2-dedline Ahmadjonov Subhonjon
- Bu sahifa navigatsiya:
- Modelning Arduinoga ulanish sxemasi: Laboratoriyaning amaliy qismi. Ushbu model uchun quyidagi dastur mos keladi
Laboratoriya ishi № 9.
Potansiyometrni ishga tushirish orqali yoritilgan diodlar sonini o‘zgartirish. Laboratoriya ishining maqsadi: yorug‘lik diodlari bilan potentsiometrdan foydalanishni o‘rganish. Laboratoriyaning nazariy qismi. Bir LEDning yonib -o‘chishi unchalik qiziq emas. Ushbu qo‘llanmada biz bir nechta LEDlar bilan ishlashni ko‘rib chiqamiz. Agar siz o‘z tasavvuringizni ko‘rsatsangiz, qiziqarli effektlar yaratishingiz mumkin. LEDlar bilan ishlash printsipi o‘zgarmaydi, biz raqamlarni pin bilan o‘rnatamiz va kerakli signallarni beramiz. Ammo muammo shundaki, siz har bir LED uchun bir xil turdagi kod yozishingiz kerak. Va ko‘p sonli LEDlar mavjud bo‘lganda va siz mantiqni o‘zgartirishga qaror qilsangiz, har bir LED uchun kodni qidirishingiz va o‘zgartirishingiz kerak bo‘ladi. Bu juda qulay emas. Shuning uchun, muntazam ishlarni engillashtirish uchun ular looplar, massivlar, to‘plamlardan foydalanadilar. Keling, LED shkalasi va potansiyometr yordamida misolni ko‘rib chiqaylik. Agar yorug‘lik shkalasi bo‘lmasa, uni 10 ta an'anaviy LED bilan almashtiring. Potentsiometr yordamida kuchlanishni qo‘lda o‘zgartirish orqali biz ma'lumotni yorug‘lik shkalasida ko‘rsatamiz. Keling, kontaktlarning zanglashiga potentsiometrni qo‘shamiz. O‘rta pin A0 analog piniga, qolgan ikkitasi 5 V va GND ga olib keladi. Modelni yig‘ish uchun bizga kerak: • Arduino platasi • Panel (doska) • 14 ta "dada-dada" simlari • LEDlar • rezistorlar. • potansiometr Modelning Arduinoga ulanish sxemasi: Laboratoriyaning amaliy qismi. Ushbu model uchun quyidagi dastur mos keladi: // o‘zgarmaslar const int analogPin = A0; // potentsiometr uchun port const int ledCount = 10; // LED o‘lchovidagi LEDlar soni int ledPins [] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // LEDlar ulangan portlar qatori void setup () { // massivning barcha elementlarini ko‘rib chiqing va chiqish rejimini o‘rnatamiz for (int thisLed = 0; thisLed < ledCount; thisLed++) { pinMode(ledPins[thisLed], OUTPUT); } } void loop() { // potentsiometrdan signalni o‘qing int sensorReading = analogRead(analogPin); // natijani 0 dan 10 gacha diapazonga aylantiring (LEDlar soni bo‘yicha) int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); // LEDlar qatoridan o‘ting for (int thisLed = 0; thisLed < ledCount; thisLed++) { // agar massiv elementi indeksi ledLeveldan past bo‘lsa, // ushbu element uchun portni yoqing: if (thisLed < ledLevel) { digitalWrite(ledPins[thisLed], HIGH); } // ledLevel -dan yuqori bo‘lgan barcha portlarni o‘chiring: else { digitalWrite(ledPins[thisLed], LOW); } } } Bu misol bir diapazonning qiymatlarini boshqa diapazon qiymatlariga mutanosib ravishda o‘zgartirish uchun mo‘ljallangan map () funktsiyasi bilan qiziq. Biz bilamizki, potentsiometr 0 dan 1023 gacha natijalarni chiqarishi mumkin va bizda faqat o‘nta LED mavjud. Funktsiya bizga o‘zgarishda yordam beradi. int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); Barcha qiymatlar 0 dan 10 gacha teng bo‘ladi (har bir birlik uchun taxminan 102 ta potansiyometr birligi). Tasavvur qilaylik, bizning potentsiometr 110 birlik qiymatini ko‘rsatadi, bu funksiya qo‘llanilgandan keyin 1 qiymatiga to‘g‘ri keladi. Qatordagi birinchi LED 0, ya'ni. kamroq 1. Birinchi LED yonadi, qolganlari esa o‘chadi (agar ular oldin yoqilgan bo‘lsa). Potensiometr tugmachasini burab, biz qiymatlarni oshiramiz va shunga mos ravishda LEDlar sonini ko‘paytiramiz. Potensiometr tugmachasini teskari tomonga burib, biz LEDlar sonini kamaytiramiz. Natijalarni kuzatish uchun kodingizga Serial Watch qo‘shing. int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); Download 51.57 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling