Текст книги "Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma"
Автор книги: Akmaljon Kuchkarov
Жанр: Компьютеры: прочее, Компьютеры
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 3 (всего у книги 11 страниц) [доступный отрывок для чтения: 3 страниц]
Raqamli pin digitalWrite () buyrug`i yordamida raqamli chiqish signal hosil qilishi mumkin. Raqamli signal ikkita qiymatga ega bo`ladi; – 0 yoki 1 (0 volt yoki 5 volt).
void setup () {
pinMode (11, OUTPUT);
digitalWrite (11, HIGH); delay (500);
digitalWrite (11, LOW); delay (500);}
40 mA dan ortiq quvvat sarflaydigan qurilmalarni Arduino pinlariga ulash mumkin emas, chunki mikrokontrollerning asosiy maqsadi mantiqiy signallar yordamida boshqa qurilmalarni boshqarishdir. Agar qurilmani belgilangan qiymatdan ko`proq iste`mol qiladigan pinga ulasangiz, u holda pinga zarar etishi mumkin. Bu holda relelardan foudalaniladi.
4.5.VAQT BILAN ISHLASH
4.5.1.Arduino kechikishi: delay ()Arduinoda delay () funksiyasi muhim rol o`ynaydi va bu buyruq aksariyat dasturni yozish deyarli mumkin emas. Arduino dasturlashda vaqtni kechiktirishning delay () buyrug`ining maqsadi va ishlatilishini quyida ko`rib chiqamiz. Hozir biz faqat delay kechiktirish funksiyasining asosiy xususiyatlarini ko`rib chiqamiz va kichik dasturlar shaklida foydalanish misolini keltiramiz. Ishlash uchun sizga faqat Arduino platasining o`zi kerak bo`ladi.
Arduinoda delay ()
delay buyrug`i belgilangan millisekundlar (1 soniyada 1000 millisekund) uchun dasturning bajarilishini to`xtatadi. delay () funksiyasidan foydalangan holda dasturning kechikishi paytida plataga ulangan sensorlarni o`qib bo`lmaydi yoki boshqa operatsiyalarni bajarish mumkin emas.
Dastur:
// Svetodiodni miltillashi uchun delay () dan foydalanish misoli
void setup () {
pinMode (13, OUTPUT);
}
void loop () {
digitalWrite (13, HIGH);//chiqishga YUQORI signal yuboring
delay (100); // 100 millisekundga kechikish vaqti
digitalWrite (13, LOW);//chiqishga PAST signalni yuboring
delay (100);} //100 millisekundga kechikish vaqti
4.6.MATEMATIK FUNKSIYALAR
4.6.1.Arduinoda map () funksiyasiArduinodagi map funksiyasi qiymatni joriy diapazondan parametrlar bilan ko`rsatilgan qiymatlarning yangi diapazoniga o`tkazadi – map qiymat, fromLow (pastdan), fromHigh (yuqoridan), toLow (pastga), toHigh (yuqoriga). map () buyrug`i faqat butun sonlarda ishlaydi. Raqamning kasr qismi proportsional uzatishda matematika qoidalariga ko`ra yaxlitlanmaydi, balki shunchaki o`chiriladi. Arduino IDE-da map funksiyasidan misollar bilan foydalanishni ko`rib chiqamiz.
Arduino IDE-da map funktsiyasi
map (qiymat, fromLow, fromHigh, toLow, toHigh)
*qiymat: belgilangan qiymat
*fromLow: joriy diapazonning pastki chegarasi
*fromHigh: joriy diapazonning yuqori chegarasi
*toLow: yangi diapazonning pastki chegarasi
*toHigh: yangi diapazonning yuqori chegarasi
Arduinoda map funksiyasiga misol:
void setup () {
pinMode (A1, INPUT); // analog sensorni ulang
pinMode (10, OUTPUT); //LEDni ulang
}
void loop () {
// «qiymat» o`zgaruvchisi 0 dan 1023 gacha
int qiymat = analogRead (A1);
//analog qiymatni 8 bitli raqamga o`zgartiring (0 dan 255 gacha)
qiymat = map (qiymat, 0, 1023, 0, 255);
//yangi «qiymat» qiymati bilan svetodiodni yoqing
analogWrite (10, qiymat);
}
map funktsiyasi diapazonni o`zgartirishi mumkinligini unutmang, ya`ni «pastki chegara» «yuqori chegara» dan kattaroq bo`lishi ham mumkin. Misol:
qiymat = map (qiymat, 0, 1023, 255, 0);
Eslatib o`tamiz, map () funksiyasi yordamida o`zgartirilganda raqamning kasr qismi yaxlitlanmaydi, balki o`chiriladi (hisobga olinmaydi). Arduino dasturlash tilida float ma`lumotlar turi bilan ishlashda bu faktni hisobga olish kerak.
4.7.TASODIFIY KATTALIKLAR GENERATORI
4.7.1.Arduinoda random va random Seed funksiyasiArduino rondom funksiyasi psevdo-tasodifiy raqamni qaytaradi, ya`ni tasodifiy sonlarni yaratish ketma-ketligi hali ham oldindan aytib bo`ladi. Random Seed funksiyasi ko`proq tasodifiy qiymatlarni yaratish uchun tasodifiy funksiyaga o`zgaruvchi yoki doimiyni qo`yish imkonini beradi. Arduino IDE dasturlash tilida ma’lum bir diapazondagi tasodifiy sonni qanday qilib to`g`ri belgilashni aniqlaymiz.
random – Arduinoda tasodifiy sonlar yaratish
Random (min, max) funksiyasi min va maksimal qiymatlar bilan belgilangan diapazonda psevdo-tasodifiy raqamni qaytarish imkonini beradi. Keling, turli xil ma`lumotlar turlariga ega misollarni ko`rib chiqaylik.
Taqdim etilgan misolda 0 dan 250 gacha bo`lgan oraliqda butun sonlarni saqlaydigan byte ma`lumotlar turi tanlanadi. Boshqa ma`lumotlar turlaridan foydalanish mumkin: int, long, unsigned long, unsigned int va boshqalar. Shunga ko`ra, kerakli diapazon (min, max) o`rnatiladi.
byte malumotlar;
void setup () {
Serial.begin (9600);
}
void loop () {
malumotlar = random (100, 200); //diapazondagi arduino tasodifiy soni Serial.println (malumotlar);
delay (250);
}
4.7.2.Arduinoda random floatMikrokontroller faqat butun sonlarni yaratishi mumkin. Shuning uchun, ikkita kasrli float ma`lumotlar turini olish uchun alohida butun son hosil qilishingiz va unga o`nli kasrlar qo`shishingiz kerak. Bunday dasturga misol:
float malumotlar;
float malumotlar1;
float malumotlar2;
void setup () {
Serial.begin (9600);
}
void loop () {
malumotlar1=random (10); //butun sonlarni yarating malumotlar1=random (100); //kasrdan keyin raqamlar hosil qilish
malumotlar=malumotlar1 + malumotlar2/100;// qiymatlarni qo`shing
Serial.println (malumotlar);
delay (250);
}
4.7.3.Arduinoda random boolAgar sizga tasodifiy boolen o`zgaruvchi kerak bo`lsa, u faqat ikkita rost (true) yoki yolg`on (false) qiymatni qabul qilishi mumkin. Keyin berilgan ehtimollik bilan tasodifiy rost/yolg`on hosil qilishingiz mumkin. Shunchaki tasodifiy funksiya natijasini bool o`zgaruvchisiga belgilaymiz, bunda yolg`on bo`lish ehtimolining o`zaro nisbatini ko`rsatamiz. Misol:
bool malumotlar;
void setup () {
Serial.begin (9600);
}
void loop () {
//o`zgaruvchan ma`lumotlar 1/5 ehtimollik bilan 0 qiymatini oladi
malumotlar = random (5);
Serial.println (malumotlar);
delay (250);
}
4.7.4.Arduinoda random Seed tasodifiy raqamlariE`tibor bering, yuqoridagi barcha misollarda, dastur har safar qayta ishga tushirilganda, raqamlarning tasodifiy ketma-ketligi takrorlanadi. Buni Arduinoning random Seed funksiyasidan foydalanib oldini olish mumkin. random Seed tasodifiy funksiyaga o`zgaruvchini qo`yish imkonini beradi. Buni amalga oshirish uchun raqamlarni yaratishni tasodifiy qilish uchun millis, analogRead yoki boshqa variantlardan foydalaning.
int malumotlar;
void setup () {
Serial.begin (9600);
randomSeed (analogRead (A1)); //A1 piniga hech narsa ulanmagan
}
void loop () {
malumotlar = random (100, 200); //diapazondagi Arduino tasodifiy soni
Serial.println (malumotlar);
delay (250);
}
Dastur har safar qayta ishga tushirilganda, psevdo-tasodifiy raqamlar generatori random Seed (analogRead (A1)) funksiyasi bilan ishga tushiriladi (portdagi «shovqin» tufayli tasodifiy qiymat bilan). Buning uchun har qanday bo`sh portdan foydalanishingiz mumkin, chunki barcha analog chiqishlar atrof-muhitdan tasodifiy shovqinlar-radio to`lqinlari, kompyuterlar, uyali telefonlar va boshqalarning elektromagnit shovqinlarini oladi.
5-bob. ARDUINO PLATFORMASIDA AMALIY MASHG’ULOTLAR
5.1.Serial funksiyasi va Monitor port haqida tushuncha
Monitor port – bu Arduino mikrokontrollerini kompyuter yoki boshqa qurilmalar bilan ma`lumot almashishiga xizmat qiladigan funksiya (bajarilish, sodir bo`lish) bo`lib, u yordamida yozgan dasturlar qanday tartibda bajarilayotgani haqida ma`lumotlar chiqaradi.
Arduinodan kelgan ma`lumotlar Arduino sketchining (Arduinoda yozilgan dasturning nomi) Monitor portiga chiqadi. Monitor port-bu Arduino va kompyuter o`rtasida aloqa almashish oynasi bo`lib Arduinodan kelgan ma`lumotlar shu yerda chiqadi va shu yerdan Arduinoga ma`lumotlar jo`natiladi.
Yordamchi dastur uch qismga bo`lingan oynadan iborat. Yuqori qismida ma`lumotlarni kompyuterdan ketma-ket portga yuborishingiz mumkin bo`lgan kirish maydoni mavjud. Markaz ketma-ket portdan olingan ma`lumotlarni ko`rsatadi. Oynaning pastki qismida (yangi versiyalarda yuqori qismida) sozlamalar menyusi joylashgan. Arduino monitor porti bitta ketma-ket port bilan ishlashi mumkin, shuning uchun dastur yuklashda va Monitor portni ochishda xatolikka yo`l qo`ymaslik uchun aniqlangan COM portini tanlashingiz kerak.
5.1.rasm. COM portni tanlash
Yordamchi dasturni ochish uchun Arduino IDE-ning yuqori o`ng burchagidagi belgini bosishingiz kerak, Ctrl + Shift + M tugmalar birikmasidan foydalaning yoki menyu panelidan tanlang: Tools (Инструменты) -> Serial Monitor (Monitor porta). Arduino uchun Monitor port tezligi 9600 bit/s ga o`rnatiladi, shuning uchun ko`plab dasturlarda bu tezlikdan foydalanadi. Agar dasturda va port monitor sozlamalarida ma`lumotlarni uzatish tezligi boshqacha bo`lsa, unda barcha ma`lumotlar ierogliflar (so`zlar ma`nosini raqamlar va belgilar bilan ifodalaydigan yozuv turi) ko`rinishida ko`rsatiladi.
5.2. Monitor portga matnni qabul qilish va yuborishYordamchi dastur bilan ishlash uchun quyidagi buyruqlardan foydalaning: Serial.begin (); – buyruq ketma-ket portni ishga tushiradi
Serial. end (); – ketma-ket portni to`xtatadi va tozalaydi
Serial.print (); – ma`lumotlarni ketma-ket portga yuboradi
Serial.println (); – ushbu buyruqdan keying ma`lumot keyingi satrdan boshlanadi
Serial.read (); – ketma-ket portdan ma`lumotlarni qabul qiladi
Serial.parseInt (); – port monitoridan katta raqamlarni o`qish
5.3. Serial.begin () – buyruqArduino IDEda Monitor portni quyidagicha ochiladi:
5.2.rasm. Monitor portni ochish
5.3.rasm. Monitor portni chiqish oynasi
Ma`lumotlarni Monitor portga chiqarish uchun birinchi Arduino bilan kompyuter o`rtasida aloqa o`rnatish kerak. Buning uchun void setup () ning ichiga Serial.begin () buyrug`ini yozishimiz kerak.
Serial.begin () —bu Arduino bilan biror qurilma o`rtasida aloqa o`rnatish uchun xizmat qiladigan buyruq.
5.4-rasm. Serial.begin () Arduino bilan qurilma o`rtasida aloqa o`rnatish uchun xizmat qiladigan buyruq.
Serial.begin () ichida yozilgan «9600» ma`lumot almashish tezligi bo`lib, u 1sekundda 9600 bit ma`lumot almashishini bildiradi. Bundan tashqari malumot almashish tezliklarining boshqa qiymatlari 300, 1200, 2400, 4800, 9600, 19200, 115200 va hokazo mavjud (5.5-rasm).
Arduino va kompyuter uchun eng ko`p ishlatiladigan malumot almashish tezlik 9600 hisoblanadi. Qolaversa ko`plab qurilmalar ham 9600 tezilik bilan ma`lumot almashadi.
Monitor portga malumot chiqarilganda Serial.begin () da berilgan tezlik bilan monitor portning tezligi bir xil bo`lish kerak aks xolda malumotlar to`liq yetib kelmasligi yoki umuman kelmasligi mumkin.
5.5.rasm.Serial.begin () da 1sekund ichida 9600 bit ma`lumot almashish
5.6.rasm.Serial.begin () da 1sekund 300, 1200, 2400, 4800, 9600, 19200, 115200 va hokazo bit ma`lumot almashish
Ma`lumotlarni monitor potrga chiqarish uchun esa Serial.print () buyrug`i ishlatialadi.
Serial.print (); -bu ma`lumotlarni monitor portga chiqarish buyrug`i bo`lib, ma`lumotlarni gorizontal ravishda chiqaradi (5.7-rasm).
Monitor portga ma`lumotlarni vertikal holatda chiqarish uchun Serial.println (); buyrug`idan foydalanish kerak (5.8-rasm). So`zlarni serial portga chiqarish sonlarni ekranga chiqarishdan boshqacha bo`lib, chiqarilmoqchi bo`lgan so`z ikkita qo`shtirnoq ichida yoziladi. Misol uchun Assalomu alaykum so`zini chiqarish uchun Serial.println («Assalomu alaykum»); ko`rinishida yoziladi.
5.8.rasm.Monitor portga ma`lumotlarni vertikal ravishda chiqarish buyrug`iga misoli
5.9.rasm. Monitor portga so`zlarni ekranga chiqarish
6-bob.ARDUINO VA SVETODIODLAR
6.1.Svetodiodni Arduinoga ulash sxemasi va dasturi
Ushbu bo`limda svetodiodni rezistor orqali Arduino UNO-ga qanday ulashni ko`rib chiqamiz. Svetodiodni miltillashi – bu mikrokontroller bilan ishlashni boshlash uchun eng oddiy dastur. Quyida svetodiod va rezistorli sxemani yig`ish, Arduino UNO-da svetodiodni miltillashi uchun dastur, uni Arduino UNO platasiga yuklash qoidalari va izohlar bo`yicha batafsil ko`rsatma keltirilgan.
Svetodiodlar – ko`rsatkich va yoritish uchun xizmat qiluvchi yarim o`tkazgichli indikatorlardir. Ular anod (+) va katod (-) ga ega va doimiy tok oqimning yo`nalishini sezadi (6.1-rasm). Agar svetodiodni noto`g`ri ulasangiz, u holda to`g`ridan to`g`ri tok o`tmaydi va u yonmaydi. Svetodiod noto`g`ri ulangan bo`lsa, ishlamay qolishi mumkin. Anod (svetodiodning uzun oyog`i) manbaning plyusga ulangan. Katod (svetodiodning kalta oyog`i) manbaning minusga ulanadi.
6.1– rasm. Svetodiod: a-anod, k-katod
Boshlashda svetodiodni Arduino mikrokontrollerining raqamli chiqishiga ulash orqali amaliyot taxtasida oddiy sxemani yig`amiz (Arduino platasi yonidagu uyachalar kirish va chiqishlar Pin deb ham ataladi). Dastur (Arduino uchun dastur deb ataladigan) yuklab olish orqali Arduino UNO platasidan qanday foydalanish va u bilan ishlashni o’rganamiz.
Qurilmalarni ishonchli yig`ish uchun bosilgan (pechat) elektron platalar yaratish ko`p vaqt talab etadi. Elektr zanjirlarini tez yig`ish uchun amaliyot taxtasi (6.2-rasm) ishlatiladi. Amaliyot taxtasidagi plastmassa qatlami ostida oddiy printsipga muvofiq yotqizilgan mis plitalar – relslar (yo`llar) mavjud.
6.2.Amaliyot taxtasida sxemalarni tez yig`ish
Svetodiodlarning uzun oyog`i anod bo`lib, u har doim manbaning plyusga ulanadi hamda kalta oyog`i katod bo`lib u minusga ulanadi.
Nima uchun LED Arduinoga rezistor bilan ulanadi? Gap shundaki, svetodiodda yuqori toklarga chidamsiz kristal bor. Rezistor tokni cheklash uchun mo`ljallangan bo’lib svetodiodga ziyon etmaydi. Katta tok svetodiod uchun zararli, kichikroq tok (rezistorning ulanishi tufayli) uzoq muddat ishlashini ta`minlaydi. Svetodiodni Arduinoga rezistor ulash uchun 13-portdan foydalaning.
6.2-rasm. Amaliyot taxtasining tashqi va ichki ko’rinishi
6.2-rasm. Amaliyot taxtasining tashqi va ichki ko’rinishi
Arduino IDE dasturini so`nggi versiyasini https://www.arduino.cc/en/software rasmiy veb-saytidan yuklab oling.
Dasturlar Arduino platasi kompyuterdan quvvatlanib USB kabeli yordamida yuklab olinadi. Agar elektron qurilmaning avtonom ishlashi kerak bo`lsa, u holda plata akkumulyator yoki 7—12V quvvat manbai bilan quvvatlanadi. Manba qo`llanilganda, platadagi indikator LED yonadi.
Arduino IDE da plata va portni tanlashda quyidagi ketma-ketlikni bajaring:
1-qadam. «Инструменты Плата» asosiy menyusiga o`ting. Agar Arduino platasi to`g`ri aniqlanmasa, kerakli turni tanlang, masalan, Arduino UNO.
2-qadam. «Инструменты -> Порт» menyusida ulanish portini (COM1 dan tashqari) o`rnating, chunki Arduino-ni shaxsiy kompyuterga ulashda virtual COM porti yaratiladi.
Yuqoridagi ishlar bajarilgandan so’ng 6.3 rasmda keltirilgan sxemaga asosan svetodiodni yoqish uchun Arduinoga ulanadi.
6.3-rasm. Arduinoga svetodiodni ulash sxemasi..
Arduinoda svetodiodni yoqishuchundastur:
void setup () {
pinMode (7, OUTPUT); // 7-pinni chiqish sifatida e`lon qilish
}
void loop () {
digitalWrite (7,HIGH); //Svetodiodni yoqing
delay (1000); //1 soniya kuting
digitalWrite (7,LOW); //Svetodiodni o`chiring
delay (1000); //1 soniya kuting
}
Dasturda svetodiodlar ulangan port raqamlarini o`zgartirishingiz mumkin. Shu bilan birga, sxemada qancha svetodiod ishlatsangiz, pinMode buyruqlari shuncha marta yozilishi kerak.
Dasturni mikrokontrollerga yuklab olishdan oldin koddagi xatolarni tekshirish kerak (kompilyatsiya qilinadi). Agar xato topilsa, Arduino IDEning pastki oynasida xabar keladi. Har qanday holatda, dastur yuklashda, dastur birinchi navbatda tekshiriladi.
Dasturni mikrokontrollerga yuklab olishdan oldin dastur kompyuterda saqlananishi kerak. Ko`rsatilgan oynada «Загрузка» tugmasini bosilganda yuklab olish boshlanadi.
Tushuntirish:
setup () funksiyasi (protsedurasi) mikrokontroller ishga tushirilganda bir marta amalga oshiriladi, mikrokontroller portlari va boshqa sozlamalarni sozlash uchun foydalaniladi;
setupni amalga oshirgandan so`ng, cheksis bajariladigan loop () funksiyasi (protsedurasi) boshlanadi. Biz buni svetodiodni doimiy ravishda yonib-o`chishi uchun ishlatiladi; setup va loop funksiyasilari (protseduralari) har qanday dasturda mavjud bo`lishi kerak. delay (); belgilangan mikrosekundlarda dasturni to`xtatadi.
Arduino UNOda miltillovchi LED (6.3.rasm)
unsigned long joriyTime; //vaqt o`zgaruvchisi
boolean ledState = 0; // svetodiod holati o`zgaruvchisi
void setup () {
pinMode (7, OUTPUT); //7-pinni chiqish sifatida e`lon qilish
}
void loop () {
if (millis () – joriyTime> 500) // necha millisekund o`tganligini tekshiring
{
joriyTime = millis ();
led State=!ledState; //svetodiod holatini teskarisiga o`zgartiring
digitalWrite (9, ledState);
}}
Tushuntirishlar: Har 500 millisekundda boolean o`zgaruvchisining holati ledState=!ledState buyrug`i yordamida teskarisiga o`zgartiriladi.
6.3.Svetodiodlarni Arduinoga ulash sxemasi va dasturi
Miltillovchi svetodiodlar bilan yanada murakkab dastur Arduinodagi svetofor bo`lib, u erda uch yoki undan ortiq svetodiodni yoqish va o`chirishni tartibga solish kerak. Elektr sxemasini yig`gandan so`ng, mikrokontrollerga quyidagi kodni yuklang.
void setup () {
pinMode (12, OUTPUT); //12-pinni chiqish sifatida e`lon qilish
pinMode (10, OUTPUT); //10-pinni chiqish sifatida e`lon qilish
}
void loop () {
digitalWrite (12, HIGH); //svetodiodni yoqing
digitalWrite (10, LOW); //svetodiodni o`chiring
delay (1000); // 1 soniya kuting
digitalWrite (12,LOW); //svetodiodni o`chiring
digitalWrite (10, HIGH); //svetodiodni yoqing
delay (1000); //1 soniya kuting
}
Tushuntirish: Svetodiodlarni yoqish/o`chirish navbat bilan sodir bo`ladi;
Bir vaqtning o`zida kiritish koddagi satrlarni almashtirish orqali amalga oshirilishi mumkin.
Ushbu bo`limda Arduino UNO yoki NANOda miltillovchi svetodiodni qanday bajarishni ko`rib chiqdik va yakunda svetodiodni delay yoki millis yordamida miltillashini o`rgandik.
6.4.Arduinoda LEDni asta sekin yonishi
Arduinoda PWM yordamida LEDni asta sekin yoqish (6.3.rasm) ushbu sahifada muhokama qilinadi. LEDni qanday ulashni ko`rib chiqing, keling, PWM (Pulse Width Modulation, o`zbekcha-Impuls kengligi modulyatsiyasi) nima ekanligini ko`rib chiqaylik. Shuningdek, C++ dasturlash tilidagi for siklini batafsil ko`rib chiqamiz, bu konstruksiyaga kiritilgan buyruqlarni takrorlash uchun ishlatiladi.
Arduinoda LEDni yorqinligini boshqarish nima ekanligini ko`rish uchun oddiy dasturdan foydalanamiz. Buning uchun for tsiklidan foydalanishingiz mumkin. Ushbu konstruktsiyaning sarlavhasi uch qismdan iborat: for (initialization; condition; increment (boshlash; shart; o`sish)) – initialization bir marta amalga oshiriladi, keyin condition sharti tekshiriladi, agar shart to`g`ri bo`lsa, u holda increment ortadi va shart rost bo`lguncha sikl takrorlanadi.
Yuqoridagi ko`rsatmaga asosan PWM yordamida LEDning yorqinligini o`zgartiramiz, LED asta-sekin yonadi va keyin o`chadi. LEDlar yoki masofadan boshqarish pulti bilan boshqariladigan tungi chiroqlar dekorativ yoritish uchun ishlatilishi mumkin. LEDni Pin6 analog portiga ulang va quyidagi dasturni yuklang.
Arduinoda LEDni yorqinligini boshqarish dasturi
#define LED_PIN 7 //7-pin uchun nom bering
void setup () {
pinMode (LED_PIN, OUTPUT); //7-pinni chiqish sifatida ishga tushiring
}
void loop () {
// LEDni yorqinligini boshqarish
// 7-pinning boshlang`ich qiymati i=0, agar i <=255 bo`lsa, i ga bitta qo`shing
for (int i=0;i <=255;i++) {
analogWrite (LED_PIN, i);
delay (5); //effekt uchun kechikishni o`rnating
}
//LEDning asta sekin o`chishi
//7-pinning boshlang`ich qiymati i=255, agar i> =255 bo`lsa, i dan bittasini ayiring
for (int i=255;i> =0;i – ) {analogWrite (LED_PIN, i);
delay (5); // effekt uchun kechikish belgilang
}
}
Tushuntirish: for sikli i <=255 yoki i> =0 sharti rost bo {ʻ} lguncha takrorlanadi. for sikli uchun ushbu qiymatlar qavs ichida yozilishi kerak – (boshlash; shart; o`sish). for tsikli konstruksiyasi jingalak qavslar {} orasiga joylashtirilishi kerak.
6.5.Arduinoga LEDlarni ketma-ket ulanishi
Ushbu bo`limda ketma-ket bir nechta LEDlarni yoqamiz. Oldingi bo`limlarda LEDlarni qanday boshqarishni o`rganganingizdan so`ng, Arduinoda LEDlarni ketma-ket qanday yoqishni aniqlash qiyin bo`lmaydi. Bundan tashqari, for siklini konstruksiyadagi operatsiyalarni takrorlash uchun xizmat qiladi va loop siklida o`ziga xos sikl vazifasini bajaradi.
Ushbu vazifani bajarish uchun avvalgibo`limlardagi oddiy dasturdan foydalaniladi. Dasturda barcha LEDlarni ma`lum tezlikda ketma-ket yoqishni va keyin ularni ketma-ket o`chirishni belgilash kerak (6.5-rasm). Shu bilan birga for siklidan ham foydalanish mumkin, bu vazifani sezilarli darajada osonlashtiradi. Birinchidan, bu sikl yordamida LEDlar sonini belgilash mumkin.
void setup () {
pinMode (12, OUTPUT); //12-pinni chiqish sifatida e`lon qilish
pinMode (10, OUTPUT); //10-pinni chiqish sifatida e`lon qilish
}
void loop () {
digitalWrite (12, HIGH); //svetodiodni yoqing
digitalWrite (10, LOW); //svetodiodni o`chiring
delay (1000); // 1 soniya kuting
digitalWrite (12,LOW); //svetodiodni o`chiring
digitalWrite (10, HIGH); //svetodiodni yoqing
delay (1000); //1 soniya kuting
}
Tushuntirish: Svetodiodlarni yoqish/o`chirish navbat bilan sodir bo`ladi;
Bir vaqtning o`zida kiritish koddagi satrlarni almashtirish orqali amalga oshirilishi mumkin.
Ushbu bo`limda Arduino UNO yoki NANOda miltillovchi svetodiodni qanday bajarishni ko`rib chiqdik va yakunda svetodiodni delay yoki millis yordamida miltillashini o`rgandik.
Внимание! Это не конец книги.
Если начало книги вам понравилось, то полную версию можно приобрести у нашего партнёра - распространителя легального контента. Поддержите автора!Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?