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


{bajariladigan operatsiya 2;} – bu jarayon else ya`ni shart bajarilmaganda yoki yolg`on (0) qiymatga ega bo`lganda bajarilishi kerak bo`lgan jarayon.

Misol: quyidagi keltirgan misolimizga qarang! U yerda aks holda to`p darvozaning yonidan o`tib ketadi deyilgan. Ana shu operatsiya shart operatorining umumiy ko`rinishiga misol bo`lishi mumkin.

if (to`pni to`g`ri tepsak) {to`p darvozaga borib tushadi;}

else {to`p darvoza yonidan o`tib ketadi;}

4.2.4.Arduinoda mantiqiy operatorlar- if va else

Arduinodagi if operatori shartni tekshiradi, agar u rost bo`lsa, jingalak qavslardagi kod bloki bajariladi. Jingalak qavslar shartli operatordan keyingi kodning faqat bitta qatori bajariladi. Har doim jingalak qavslardan foydalanishni tavsiya qilamiz. Shartlar, shartlar tartibi va Arduino taqqoslash operatorlarini quyidagi misollar bilan ko`rib chiqamiz.

Arduinoda if shartlari to`g`ri yoki noto`g`riligini tekshirish uchun taqqoslash operatorlari ishlatiladi. Jingalak qavslar mantiqiy ravishda bir nechta qatorlarni bitta blokda guruhlaydi. O`zgaruvchining qiymati berilgan raqamdan katta yoki kichikligini tekshiradigan dastur:

if (qiymat> 500) {digitalWrite (8, HIGH); digitalWrite (7, LOW);}

if (qiymat <500) {digitalWrite (8, LOW); digitalWrite (7, HIGH);}

If va else konstruksiyasi bitta if operatoridan ko`ra dasturni yaxshiroq boshqarish imkonini beradi. Bu ifoda to`g`ri bo`lgan holat uchun emas, balki qarama-qarshi holat uchun ham harakatlarni aniqlashga imkon beradi (ifoda qiymati noto`g`ri bo`lsa ham).

Arduinoga fotorezistorni ulashda if else operatoriga misol:

#define SENSOR A0

unsigned int qiymat = 0;

void setup () {

pinMode (LED, OUTPUT);

pinMode (SENSOR, INPUT);

}

void loop () {

//A0 analog kirishidagi fotorezistordan qiymatni o`qing

qiymat = analogRead (SENSOR);

//Agar A0 kirishidagi qiymat 500 dan kam bo`lsa, svetodiodni yoqing

if (qiymat <500) {digitalWrite (LED, HIGH);}

//Aks holda (agar qiymat> 500), svetodiodni o`chiring

if (qiymat> 500) {digitalWrite (LED, LOW);}

}

Arduinoda taqqoslash operatorlari:

x == y (x y ga teng)

x!= y (x y ga teng emas)

x <y (x y dan kichik)

x> y (x y dan katta)

x <= y (x y dan kichik yoki teng)

x> = y (x y dan katta yoki teng)

Tenglik belgisi `=` va `==` taqqoslash operatorini chalkashtirmang. If operatorida tenglik belgisidan foydalanish dastur (dastur) bajarilganda boshqacha natija berishi mumkin. Masalan, if (y = 100) if (y==100) bilan bir xil emas. Tenglik belgisi – o`zgaruvchining qiymatini 100 ga tekshirish o`rniga, o`zgaruvchining qiymatini 100 ga o`zgartiruvchi tayinlash operatori.

Bir nechta mantiqiy qiymatlarni bog`lash uchun mantiqiy operatorlar qo`llaniladi:

!(not) – EMAS, inkor

&& (and) – VA

|| (or) – YOKI

if (raqam> 500 && qiymat> 500)

{digitalWrite (7, HIGH); digitalWrite (8, LOW);

}

else {digitalWrite (7, LOW); digitalWrite (8, HIGH);}

Shartlar tartibi

Kodni optimallashtirish va dastur tezroq yozishga harakat qilishda shartlarning tartibi muhim rol o`ynaydi. Mantiqiy iboralar/qiymatlar chapdan o`ngga qarab tekshiriladi va agar birinchi tekshirishda ifoda noto`g`ri bo`lsa, shartlarni keyingi tekshirish to`xtatiladi. Misol uchun, agar raqam> 500 sharti noto`g`ri bo`lsa, keyingi ifoda qiymat> 500 tekshirilmaydi va amal bajarilmaydi.

4.2.5.Arduinoda for va while sikllari

Ushbu bo`limda Arduino IDE da for, while va do while sikllarining qanday ishlashini, dasturlarda to`g`ri foydalanishni va qanday xatolardan qochish kerakligini ko`rib chiqamiz. Oddiy misollar yordamida siklni qanday to`xtatishingiz yoki bir sikldan ikkinchisiga o`tishingiz mumkinligini ko`rsatamiz. Yozish sikllarining to`g`riligini tushunish uchun, avvalo, robototexnikadagi algoritmlarning turlari va xossalarini o`rganish kerak.

Arduinoda C++dasturlash tilidagi har qanday sikl ko`p yoki chek takrorlanadigan harakatdir. Arduino mikrokontrolleri uchun biron bir dastur looplar ishlay olmaydi, masalan, void loop cheksiklda chaqiriladi. Uch xil sikl operatorlari mavjud: for, while va do while – har bir operatorga to`xtalib o`tamiz, ularning qanday ishlashini misollar bilan ko`rib chiqamiz.

for va while ishlash prinspini quyidagi oddiy misollar bilan tushuntirish mumkin. for sikli chekli marta bajariladi (operator holatida ko`rsatilgan), u dastur, masalan, svetodiodni bir necha marta miltillashini talab qilganda ishlatiladi. while sikli chek muddatda bajarilishi mumkin, masalan, sensordan olingan ma`lumotlar o`zgarmaguncha Arduinodagi svetodiod yonib-o`chib turadi.

Arduinoda for operatori quyidagicha yoziladi:

for (boshlash; shart; o`zgartirish) {

// takrorlanadigan buyruqlar