banner banner banner
Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma
Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma
Оценить:
 Рейтинг: 0

Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma


}

For tsikli jingalak qavslar ichiga olingan ma`lum buyruqlarni takrorlash uchun ishlatiladi. Ushbu sikl har qanday takroriy harakatlarni bajarish uchun javob beradi.

Initializatsiya o`zgaruvchini yaratadi va boshlang`ich qiymatni belgilaydi. Shartda sikl bajariladigan o`zgaruvchining qiymati mavjud.

O`zgartirish siklning har bir bosqichi bilan o`zgaruvchining qanday o`zgarishini belgilaydi.

for (byte i=0; i <=5; i++) {digitalWrite (13, HIGH);

delay (500);

digitalWrite (13, LOW);

delay (500);}

Dastur misolida i=0 boshlang`ich qiymati bilan o`zgaruvchi o`rnatilgan, shart o`zgaruvchi besh i <=5 ga teng yoki undan katta bo`lgunga qadar sikl bajarilishini bildiradi. O`zgartirish siklning har bir bosqichidagi o`zgaruvchining bittaga oshirilishini bildiradi. Nihoyat, o`zgaruvchi beshga teng bo`lganda for tsikli chiqadi, shuning uchun svetodiod sikl tugashidan oldin besh marta miltillaydi.

O`zgaruvchan qadam (o`zgartirish) har qanday bo`lishi mumkin. Agar o`zgaruvchini birdaniga ikki birlikka oshirish zarur bo`lsa, u holda hisoblagich o`zgarishi quyidagicha yozilishi kerak: i=i+2. for tsikli void setup protsedurasi ichida ishlatilishi mumkin, masalan, bir vaqtning o`zida bir nechta pinlar uchun ish rejimini belgilash uchun. Shuningdek, void loop protsedurasida, masalan, Arduinoda svetodiodlarni ketma-ket yoqish dasturida qo’llaniladi.

Arduinoda while sikli quyidagicha aniqlanadi:

while (shart) {

// takrorlanadigan buyruqlar

}

Qavs ichidagi shart rost ekan, while sikli uzluksiz va cheksiz ishlaydi. Sikldan chiqishga while holatidagi o`zgaruvchi o`zgarganda erishiladi, shuning uchun biror narsa uning qiymatini o`zgartirishi kerak. O`zgaruvchini o`zgartirish dastur kodida sikl ichidagi yoki har qanday sensordan, masalan, HC-SR04 ultratovush diapazoni o`lchagichidan qiymatlarni o`qishda sodir bo`lishi mumkin.

byte i=0; //tsikldan oldin o`zgaruvchi yaratishingiz kerak

while (i <5) {//tsikli while i 5 dan kichik

digitalWrite (13,HIGH);

delay (500);

digitalWrite (13, LOW);

delay (500);

i++; // o`zgaruvchini o`zgartirish}

while funktsiyasidan foydalanilganda, o`zgaruvchi tsikl boshlanishidan oldin yaratilishi kerak. Misol uchun dasturida, svetodiod sikl tugashidan oldin besh marta miltillaydi. Agar jingalak qavslar ichidagi i++ o`zgaruvchini o`zgartirmasangiz, sikl chek takrorlanadi. Arduino UNOning while siklidan chiqishning ikkinchi usuli – sensordan ma`lumotlarni o`qish va o`zgaruvchini o`zgartirish uchun if iborasidan foydalanishdir.

Arduino IDE-da ishlatilishi mumkin bo`lgan yana bir sikl bu do… while siklidir. Bu konstruksiyadan foydalanilganda sikldagi buyruqlar shartdan qat`iy nazar kamida bir marta bajariladi, chunki shart sikl bajarilgandan keyin tekshiriladi. Quyidagi kod misolida, svetodiod sensor o`qilishidan qat`iy nazar yonadi va shundan keyingina keyingi holat tekshiruvi amalga oshiriladi.

int suv; //tsikldan oldin o`zgaruvchi yarating

do {digitalWrite (13, HIGH);

suv = analogRead (AO);

}

while (suv <5) //sensorni tekshiring

digitalWrite (13, LOW);

Agar ko`rsatilgan shartlardan qat`i nazar, sikldan chiqish kerak bo`lsa, break yoki goto iborasi qo`llaniladi. break operatori sikldan chiqish imkonini beradi va dastur quyidagi buyruqlarni bajarishda davom etadi. goto iborasi nafaqat sikldan chiqishga, balki dasturni kerakli joydan belgilangan tartibda bajarilishini davom ettirishga imkon beradi.

4.2.6.Arduinoda tanlash operatorlari – switch va case

Switch operatori if operatori kabi, turli sharoitlarda bajarilishi kerak bo`lgan muqobil kodni berib, dasturni boshqaradi. Agar ikkitadan ortiq shartlardan birini tanlashingiz kerak bo`lsa, if… else if yoki switch… case bayonotidan bir necha marta foydalanish mumkin. Keling, bir nechta diskret shartlar orasidan tanlashda switch iborasidan foydalanish misollarini ko`rib chiqaylik.

Arduinoda switch case tanlash operatori o`zgaruvchining qiymatiga qarab dasturning harakatlarini tarmoqlanadigan dasturda qulay konstruktsiyani yaratishga imkon beradi. Ushbu konstruktsiyada standart operatorning mavjudligi ixtiyoriy, uzilish operatorining mavjudligi esa majburiydir. If… else shartli operatorlar va switch… case tanlash operatorlari yordamida dasturning butun mantig`i quriladi.

Switch operatori o`zgaruvchining qiymatini case iboralaridagi qiymat bilan taqqoslaydi. Qiymati o`zgaruvchining qiymatiga teng bo`lgan case operatori topilsa, bu operatordagi dastur kodi bajariladi. Dasturga misol:

int malumot = 2;

swich (malumot) {

case 1: Serial.println («1»); break;

case 2: Serial.println («2»); break;

case 3: Serial.println («3»); break;

}

Arduino IDE-dagi break, agar switch operatoridagi oldingi shart to`g`ri bo`lmasa, keyingi holatga o`tish uchun ishlatiladi. default esa agar barcha almashtirish shartlari to`g`ri bo`lmasa, kodni bajarish uchun ishlatiladi:

int malumot = 5;

swich (malumot) {

case 1:Serial.println («1»); break

case 2:Serial.println («2»); break

case 3:Serial.println («3»); break

default:Serial.println (»_»); break

}

Xulosa. Barcha dasturlash tillarida bir xil kodning bir necha marta bajarilishini ta`minlovchi boshqaruv buyruqlari to`plami (while sikli), tegishli kodni tanlash (if shartlarida) va joriy kod qismidan chiqish bo`yicha ko`rsatmalar mavjud. Arduino IDE dasturlash tilida C/C++ tilidan kerakli boshqaruv indikatorlarining ko`pini olgan, shuning uchun ularning sintaksisi deyarli bir xil.