Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma. Boxodir Xoshimovich Karimov. Читать онлайн. Newlib. NEWLIB.NET

Автор: Boxodir Xoshimovich Karimov
Издательство: Издательские решения
Серия:
Жанр произведения:
Год издания: 0
isbn: 9785006401464
Скачать книгу
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.

      4.3. Sintaksis

      4.3.1.; (nuqta vergul); (semicolon)

      ;(nuqta vergul) operatorning tugaganini bildiradi.

      int a = 13;

      4.3.2. {} (figurali qavs) {} (curly braces)

      Figurali qavs {} – - C dasturinig asosiu elemenlaridan biri

      Qavsni ochilgandan song (albatta qavs berkilishi zarur)

      Figurali qavsni qollanilishining asosiy usullari:

      Funksiya:

      • void funksiya nomi (argumentning turlari)

      {operatorlar};

      sikllar: • while (mantiqiy ifoda) {operatorlar};

      • do {operatorlar} while (mantiqiy ifoda);

      • for (inisializasiya; siklning shartli tugallanishi);

      {operatorlar};

      _ shartl operatorlar :

      • if (mantiqiy ifoda) {operatorlar}.

      4.4.Funksiyalar

      4.4.1.Raqamli kirish/chiqish. Arduinoda pinMode funktsiyasi

      Arduino IDE-ning pinMode () funktsiyasi berilgan pinning rejimini kirish yoki chiqish sifatida o`rnatadi.

      4.1-rasm. Raqamli pin

      Arduino raqamli pin ikki holatda bo`lishi mumkin. Kirish rejimida pin 0 dan 5 voltgacha bo`lgan kuchlanishni o`qiydi va chiqish rejimida pinda bir xil kuchlanishni chiqaradi.

      digitalWrite () buyrug`i yordamida raqamli chiqish signal hosil qilish

      Mikrokontrollerning pin rejimi pinMode (pin, mode) funksiyasi yordamida tanlanadi, bu erda pin- pin raqami va mode rejim yoki usul degan ma`noni anglatadi.

      Arduinoda pinMode OUTPUT (chiqish sifatida tuzilgan pinlar)

      OUTPUT (porti chiqish sifatida ishlaydi) – pin maksimal 40 mA tok bilan boshqariladigan quvvat manbaiga aylanadi. digitalWrite () buyrug`iga