Kitabı oku: «Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma»

Yazı tipi:

Redaktor Ibratjon Xatamovich Aliyev

Redaktor Obbozjon Xokimovich Qo'ldashov

Redaktor Salim Madraximovich Otajonov

Muqova dizayneri Boxodir Xoshimovich Karimov

Muqova dizayneri Ibratjon Xatamovich Aliyev

Illustrator Boxodir Xoshimovich Karimov

Illustrator Ibratjon Xatamovich Aliyev

Taqrizchi, Farg'ona Politexnika Instituti Enegetika fakulteti "Fizika" kafedrasi professori, fizika-matematika fanlari doktori Nomonjon Sultonovich Sultonov

Taqrizchi, Farg'ona Politexnika Instituti Energetika fakulteti "Fizika" kafedrasi dotsenti, fizika-matematika fanlari nomzodi Zokirjon Mirzajonovich Mirzajonov

Taqrizchi, Farg'ona Davlat Universiteti fizika-texnika fakulteti "Texnologik ta'lim" kafedrasi dotsenti, fizika-matematika fanlari nomzodi Tursun Axmedovich Axmedov

Korrektor Ibratjon Xatamovich Aliyev

Korrektor Sayora Boxodirovna Aripova

© Boxodir Xoshimovich Karimov, 2024

© Akmaljon Olloberdiyevich Kuchkarov, 2024

ISBN 978-5-0064-0146-4

Создано в интеллектуальной издательской системе Ridero

Tavsiya etilgan o’quv qollanmasi avtomatizasiya va robototexnika boyicha loyihalarda mikrokontrollerlarni tashqi muhit bilan aloqada bo’lishidan foydalanib, mikrokontrollerlarni dasturlashni o`rganayotgan o’quvchilarga mo’ljallangan.

O`quv qo`llanmasida Arduino IDE muhiti yordamida Arduino platasini dasturlash tili yoritilgan bo`lib, amaliyotda qo`llaniluvchi amaliy loyihalar keltirilgan. Qo`llanmada amaliyotda qo`llaniladigan, yechimi tugallangan Arduino asosidagi ko`plab amaliy loyihalar yoritilgan. Qollanmada keltirilgan loyihalardan o`quv jarayoni, sanoat, qishloq xo`jaligi, tibbiyot va boshqa sohalarda qo`llash imkonlari keltirilgan.

1-bob. ARDUINOGA KIRISH

1.1.Arduino nima

Arduino – bu ochiq kodli platforma bo`lib elektron loyihalarni yaratish uchun ishlatiladi. Arduino dasturlashtiriladigan elektron platadan va kompyuter kodini yozish hamda dasturni plataga yuklash uchun foydalaniladigan dasturiy ta`minot IDE (Integrated Development Environment, ya`ni, o`zbekchada «Integratsiyalashgan rivojlanish muhiti», -Integratsiya (lot. integratio – tiklash, to'ldirish) dan iborat.

Arduino platformasi elektronika bilan endigina shug`ullanayotgan o`rganuvchilar hamda ushbu sohadagi tajribali mutaxassislar tomonidan turli loyihalar tayyorlashda foydalanib kelinmoqda. Arduino platasiga yangi kodni yuklash uchun USB kabelidan foydalaniladi. Bundan tashqari, Arduino IDE C++ tilining soddalashtirilgan versiyasidan foydalanadi, bu esa dasturlashni o`rganishni osonlashtiradi.

Arduino mikrokontrolleriga yuklanadigan dastur qurilmalarni ma`lum bir algoritmga asosan boshqriladi yoki arifmetik amallarni bajaradi. Arduino dasturlash tilini tushunish juda oson, chunki bu platforma havaskorlar uchun yaratilgan. Arduino mikrokontrolleriga ko`rsatmalar to`plamini yuborish orqali kerakli vazifalarni berishingiz mumkin.

Arduinoda professional bo`lmagan foydalanuvchilar ham turli xil elektron qurilmalarni (avtomatlashtirish va robototexnika tizimlari) yaratishlari mumkin. Arduino asosidagi qurilmalar turli sensorlardan signallarni qabul qilish va turli actuator (Aktuator – bu mexanizm yoki tizimni harakatlantirish va boshqarish uchun moljallangan mashinaning tarkibiy qismi) larni boshqarish imkoniyatiga ega.

Yozilgan dastur Arduinoda mustaqil ishlashi mumkin yoki kompyuter hamda mobil qurilmalar bilan o`zaro aloqada bo`ladi.

Kompaniya asoschilari — Arduino platasini ishlab chiquvchilari italiyalik Massimo Banzi, Devid Kuartil, Tom Igo, Janluka Martino va Devid Mellislardir. Arduinoning nomlanishi ular uchrashgan Italyadagi bardan olingan. Arduino maxsus ochiq manba sifatida ishlab chiqilgan, bo’lib, faqat tovar nomi patentlangan.

Arduino o`zining protsessoriga va xotirasiga ega bo`lgan kichik plata bo`lib, atrof-muhit bilan chambarchas bog`liqdir. Arduino platasida barcha turdagi komponentlar (sensorlar, motorlar, aktuatorlar va kengaytirish platalari) ni ulash mumkin bo`lgan o`nlab pinlar mavjud. 1.1-rasmda Arduino UNO platasi keltirilgan.

1.1-rasm.Arduinono UNO platasi


Dasturlash uchun mo`ljallangan Arduino IDE dasturiy ta`minotida dasturlash tajribasiga ega bo`lmagan o`rganuvchi ham bu dasturni tushuna oladi. Arduino sizga ushbu sohada professional ko`nikmalar va ko`plab g`oyalarni amalga oshirish imkonini beradi.

Ushbu kutobda o`z loyihalaringizni yaratish uchun turli sensorlar va qurilmalarni Arduinoga ulash bo`yicha ko`plab qo`llanmalar mavjud. Kitobni o`qish jarayonida Arduino nima ekanligi hamda sensorlar va qurilmalar bo`yicha tushunchaga ega bo`lib borasiz. Agar Arduino nima ekanligini va nima uchun kerakligi haqida ko`proq bilmoqchi bo`lsangiz, unda ushbu kitobdagi amalga oshirilishi mumkin bo`lgan turli loyihalar bilan tanishishingiz kerak.

Omad tilaymiz va ajoyib Arduino olamiga xush kelibsiz!

1.2.Robototexnikada algoritmlarning turlari

Robotlashgan loyihalar uchun harakat algoritmini yaratish ijodiy fikrlashni talab qiladi, shuning uchun algoritmni faqat odam yaratishi yoki o`zgartirishi mumkin. Robotlar esa ko`rsatmalarni bajaradi. Robototexnikaning uchta qonunining algoritmlarini ishlab chiqish ko`p vaqt talab qiladigan vazifa bo`lib, robotlarga keng ko`lamli vazifalarni bajarishga imkon beradi.

Robototexnikaning uchta qonuni

1. Robot insonga shikast etkaza olmaydi yoki harakatsizlik orqali insonga zarar yetkazishi mumkin emas.

2. Robot odamlar tomonidan berilgan buyruqlarga bo’ysunishi kerak, agar bunday buyruqlar birinchi qonunga zid bo’lmasa.

3. Robot o’z mavjudligini himoya qilishi kerak, agar bunday himoya birinchi yoki Ikkinchi qonunga zid bo’lmasa.

Isaak Asimov

Dunyodagi barcha jarayonlar qonunlar va qoidalarga bo`ysunadi, olimlar tomonidani bugungi kunda juda ko`p formulalar va algoritmlar yozilgan bo`lib, ular orqali ko`plab harakatlarni hisoblashingiz va takrorlashingiz mumkin. Algoritm tushunchasi 783—850 yillarda yashab ijod qilgan vatandoshimiz matematik Muhammad ibn Muso al-Xorazmiy nomidan kelib chiqqan. Al-Xorazmiy yaratgan qo`llanmada keltirilgan o`nlik sanoq sistemasida arifmetik amallarni bajarish qoidalari soddaligi tufayliYevropada ham o`nlik sanoq sistemasi qo’llanishiga turtki bo’ldi. Bu qoidalartarjimasida bir qoida «Al-Xorazmiy aytadiki» deb boshlangan va bora-bora talaffuz tufayli «algoritm» tarzida ifodalanib kelgan.


1.2-rasm. Vatandoshimiz matematik Muhammad ibn Muso al-Xorazmiy

1.3.Algoritm nima?

Algoritm – bu masalani hal qilish yoki hisoblash uchun ishlatiladigan ketma-ketlik (protsedura). Algoritmlar apparati yoki dasturiy ta`minotga asoslangan tartiblarda harakatlarni bosqichma-bosqich bajaradigan ko`rsatmalarning aniq ro`yxati sifatida ishlaydi.

Algoritmlar IT (o`zb-AKT-axborot komunikatsion texnologiyalar) ning barcha sohalarida keng qo`llaniladi. Matematika va informatika fanlarida algoritm odatda takrorlanuvchi muammoni hal qiladigan kichik ketma- ketlikka (protseduraga) ishora qiladi. Algoritmlar ma`lumotlarni qayta ishlashni amalga oshirish uchun spetsifikatsiya sifatida ham qo`llaniladi va avtomatlashtirilgan tizimlarda katta rol o`ynaydi.

Algoritm raqamlar to`plamini saralash yoki ijtimoiy tarmoqlarda foydalanuvchi kontentini tavsiya qilish kabi murakkabroq vazifalar uchun ishlatilishi mumkin. Algoritmlar odatda dastlabki kiritish va ma`lum bir hisoblashni tavsiflovchi ko`rsatmalar bilan boshlanadi. Hisoblash amalga oshirilganda, jarayonning chiqish natijasi ko’rinadi.

Algoritmlar qanday ishlaydi?

Biz quyida kutubxonadan foydalanamiz, bu dasturni sezilarli darajada soddalashtirishga imkon beradi. Boshlash uchun HCSR04.h kutubxonasini o`rnating. Ultrasonik sensordan LEDlarni boshqarish uchun dasturda if shartli operatoridan foydalaniladi. Sxemani yig`gandan so`ng, mikrokontrollerga quyidagi dasturni yuklang.

Misol uchun, qidiruv algoritmi qidiruv so`rovini kirish sifatida qabul qiladi va uni so`rovga tegishli indikatorlarni ma`lumotlar bazasi orqali qidirish bo`yicha ko`rsatmalar to`plami orqali boshqaradi. Avtomatlashtirish dasturlari algoritmlarning yana bir misoli sifatida ishlaydi, chunki avtomatlashtirish vazifalarni bajarish uchun bir qator qoidalarga amal qilinadi. Ko`pgina algoritmlar avtomatlashtirish dasturini tashkil qiladi va ularning barchasi berilgan jarayonni avtomatlashtirish uchun ishlaydi.

2-bob. ARDUINO OILASI MIKROKONTROLLERLARINING VERSIYALARI

2.1. Arduino platsining versiyalari

Arduino platasining bir qotor versiyalari mavjud. Arduino platasining asosiy versiyalarining modellari quyidagilar:

Ø Due – Cortex-M3 ARM SAM3U4E mikroprotsessori 32-bit ARM bazasi asosidagi plata;

Ø Leonardo —ATmega32U4 mikrokontrolleri asosidagi plata;

Ø UNO —Arduinoplatformasi asosidagi eng ko‘p qo‘llaniladigan versiya;

Ø Duemilanove – ATmega168 yoki ATmega328 mikrokontrolleri asosidagi plata;

Ø Diecimila – Arduino USB platformasi asosidagi versiya;

Ø Nano – maket sifatida ishlovchi kompakplatforma. Nano kompyuteri USB Mini – B kabelya orqali ulanadi;

Ø Mega ADK – na Android telefoni va boshqa USB interfeysli qurilmalarda aloqani USB-host interfeysini qo‘llovchi Mega 2560 versiyali plata;

Ø Mega 2560 – USB-port orqali ketma ket ulanuvchichi ATMega8U2 chipi asosidagi ATmega 2560 mikrokontrolleri bazasidagi plata;

Ø Mega – ATmega1280 mikrokontrolleri bazasidagi Mega seriyali versiyasi;

Ø ArduinoBT – programmalashtirish va sim aloqa uchun Bluetooth modulli platformasi;

Ø LilyPad – tabiiy tola materiallariga biriktiriluvchi platforma;

Ø Fio – simuzatish uchun mo‘ljallangan platforma. Fio XBeeradio uchun ulash uyasi, LiPo batareyasi zaryadlash uchun ulash uyasi mavjud;

Ø Min i— eng kichik Arduino platformasi;

Ø Pro – tajribali qo‘llanuvchilar uchun yaratilgan platforma bo‘lib, katta proektlarni yaratish imkoni mavjud;

Ø Pro Min i— Pro platformai singani, tajribali qo‘llanuvchilar uchun ishlab chiqilgan bo‘lib, uning narxi arzon, o‘lchami kichik va qo‘shimcha funksiyalari mavjud.

2.1.1. Pro Mini Arduinosi


2.1-rasm. Pro Mini Arduino platasi


Pro Mini Arduinosi (2.1-rasm) ATmega168 mikrokontrolleri asosida tayyorlangan.

2.1-jadvalda Pro Mini Arduino platasinig xarakteristikalari keltirilgan.



Arduino ProMiniFTD Ikabel orqali ta’minlanadi, yoki VCC chiqish orqali

3,3 Volt yoki 5V kuchlanish bilan va RAW chiqishi boshqarilmaydigan manba orqali taminlanadi.

Ta’minlash chiqishlari

Ø RAW – boshqarilmaydigan kuchlanish orqali ulash;

Ø VCC -3,3 V yoki 5V boshqariladigan kuchlanishni ulash;

Ø GND – yrga ulash chiqishlari.

2.1.2. Nano Arduinosi

Nano platformasi (2.2-rasm), ATmega 328 (Arduino Nano 3.0) yoki ATmega168 (Arduino Nano2.x) mikrokontrolleri asosida tuzilgan, bo‘lib kichik o‘lchamga ega bo’lib u laboratoriya ishlarida qo‘llaniladi.


2.2-rasm. Nano Arduino platasi


Nano Arduino platasi kompyuterga ulangan USB Mini orqali kuchlanish oladi yoki boshqariluvchi 5V, tashqi ta’minlash manbasidan oladi. Yuqori kuchlanshli manba avtomatik tanlanadi.

Nano Arduino platasining xarakteristikalari 2.2.jadvalda keltirilgan.


2.1.3. ArduinoUNO

2.3-rasm. ArduinoUNO (DIP) platasi


UNO Arduino platformasi ATmega328 (2.3-rasm) mikrokontrolleri asosida tuzilgan. Kompyuter bilan aloqa qilish uchun FTDI USB mikrokontroller USB orqali ulanadi. Yangi UNO Arduinosida ATmega8U2 mikrokontrollerdan foydalaniladi.

Arduino UNO platasining xarakteristikalari 2.3-jadvalda keltirilgan.


2.1.4. Mega Arduinosi

Mega Arduinosi Atmega2560 (2.4-rasm) mikrokontrolleri asosida tuzilgan.


2.4-rasm. Mega Arduino platasi



Mega Arduino platasining xarakteristikalari 2.4-jadvalda keltirilgan.

3-bob. ARDUINONI QUVVATLANTIRISH VA PWM, ANALOG, RAQAMLI PINLAR

3.1.Arduino raqamli va analog pinlari

Ushbu bo`limda Arduinoda analog va raqamli, hamda PWM (pulse-width modulation), o`zbek tilida IKM (impuls kengligi modulyatsiyasi), rus tilida ШИМ (широтно-импульсная модуляция) pinlarini va analog signalni raqamliga qanday o`zgarishini ko’rib o’tamiz.


3.1.rasm. Signallarning ko’rinishi


Analog signal – vaqt o`tishi bilan doimiy ravishda o`zgaradi. Tabiatdagi barcha ma`lumotlar analog-suvdagi to`lqinlar, simli tebranishlar va boshqalar. Dastlab, odam analog qurilmalar yordamida ma`lumotni (tovushlar, tasvirlar, videolar) yozib oldi. Ammo analog signallar shovqin va uning ta`siriga sezgir.

Raqamli signal – bir va nol (signal bor yoki yo`q) ko`rinishida uzatiladi, kompyuterlar va raqamli texnologiyalar uchun uni amalga oshirish osonroq (3.1-rasm).

Arduino Nano, Arduino UNO, Arduino Mega 2560 larning pinlarini bir necha turga bo`lish mumkin, farqi turli platalardagi pinlar sonida bo`ladi. Misol uchun, Arduino Mega 2560-da plata o`lchami va mikrokontrollerning ishlashi tufayli UNO yoki Nanoga qaraganda sezilarli darajada ko`proq raqamli va analog portlar mavjud. Aslida, pinlarni dasturlashning xarakteristikalari va usullari bir – biridan farq qilmaydi.

1. Quvvat pinlari – quvvat portlari, ularning ishlash rejimini dasturlash yoki o`zgartirish mumkin emas. Ular 5V yoki 3,3V stabillashtirilgan kuchlanishni beradi, Vin quvvat manbayidan kuchlanishni beradi va GND umumiy minus (3.2-rasm).


3.2-rasm. Arduino UNO


Arduinoni quvvatlantirish bir necha yo`l bilan amalga oshiriladi:

a. USB kabel orqali quvvatlantirish;

b. Plataga ulangan ba`zi komponentlarni alohida quvvatlantirish;

c. Tashqi manbadan quvvatlantirish.

3.2.Arduino platasini quvvatlantirish

Arduino platasini quvvatlantirish uchun turli xil variantlar mavjud. Birinchisi, Arduino platangizni USB kabeli yordamida kompyuterga ulanadi.

Shuningdek, Arduino platasida servo motorlardan foydalanganda 7—12V kuchlanish bilan quvvatlantirish uchun DC quvvat ulagichidan foydalaniladi. USB kabelidan keladigan quvvat kamroq. Bu plata va kompyuter o`rtasidagi aloqa uchun juda yaxshi, lekin ba`zi motorlarni quvvatlantirish uchun yetarli bo`lmaydi.

Arduino platangizni quvvatlantirishning keyingi usuli bor. Arduinodagi quvvat Vin pindan platani 7—12V kuchlanish bilan ta`minlash uchun foydalanish mumkin. Tashqi quvvat manbaidan foydalanish va uni to`g`ridan-to`g`ri plataga ulash kerak, agar Vindan foydalanganda, uni tashqi quvvat manbaiga ulab, GNDni ham to`g`ri ishlatish kerak.

Komponentlarni Arduino UNOni quvvatlantirish

1.Har doim tashqi komponentni Arduino UNO platasiga ulaganda, avval uni GNDga ulash kerak. Keyin uni yoqish uchun bir nechta turli pinlardan foydalaniladi. Ular orasida 3,3V va 5V kuchlanishli pinlar mavjud.

Esda tutingki, Arduino UNO 5V kuchlanishda ishlaydi. Shunday qilib, agar 3,3V komponentni 5V quvvat manbaiga ulansa, komponentga zarar yetkazish mumkin. Buning ikkita varianti mavjud: Arduinodan 3,3V quvvat manbaidan foydalanish, yoki kuchlanish qiymatini o`zgartirgich bilan 5V dan foydalaniladi. Rezistorlar yoki to`g`ridan-to`g`ri kuchlanishni o`zgartirish komponenti yordamida ular orasidagi kuchlanishni o`zgartirish, 5Vni 3,3V komponentiga osongina ulash mumkin.

2. Arduino UNOda raqamli pinlar – Arduino UNO platasida 0 dan 13 gacha bo`lgan 14 ta raqamli pin bor.

3. PWM pinlari – raqamli chiqish/kirish sifatida dasturlashtirilishi mumkin bo`lgan PWM modulyatsiyalangan portlar. Bu portlar Arduino platasida (˜) bilan belgilangan;

4. Analog kirish pinlari – sensorlardan analog signalni qabul qiluvchi portlar kirish sifatida ishlaydi. Arduino UNO platasida 6ta analog pinlar bo`lib ular A0-A5 gacha bo`ladi.Ushbu portlar raqamli kirish/chiqish sifatida ham dasturlashtirilish mumkin. Ushbu pinlar PWM modulyatsiyasini qo`llab-quvvatlaydi.

pin rejimi pinMode () yordamida void setup protsedurasida tayinlanadi, masalan:

void setup () {

pinMode (10, OUTPUT); //10-pinni chiqish sifatida e`lon qilish

pinMode (A2, OUTPUT); //A2 pinini chiqish sifatida e`lon qilish

pinMode (12, INPUT); //12-pinni kirish sifatida e`lon qilish

pinMode (A1, INPUT); //A1 pinini kirish sifatida e`lon qilish

}

Tushuntirish:

1. Svetodiodni 10 va A2 chiqish piniga ulash mumkin, bu dasturda buyruq chaqirilganda yoqiladi va o`chadi;

2. Pin 10 PWM signali uchun ishlatilishi mumkin, masalan, svetodiodni yoqish uchun. A2 pin esa faqat raqamli signalni (0 yoki 1) chiqarishi mumkin;

3. Raqamli sensor 12 va A1 kirishiga ulanishi mumkin va mikrokontroller ushbu pinlarda signal borligini tekshiradi (mantiqiy nol yoki bir);

4.Analog sensor A1 kirishiga ulanishi mumkin, shu bilan birga mikrokontroller nafaqat signalni oladi, balki signal xarakteristikasini ham o`rganadi.

PWM pinlari va analog pinlarini ajratganimizga sabab shuki, PWM pinlari analog signal yaratadi, ular servo, step motor boshalar qurilmalar ulanadi shu bilab birga turli xil xususiyatlarga ega signallarni yetkazib beradi. Analog pinlar (Analog In) analog sensorlarni ulash uchun ishlatiladi, ulardan kiruvchi signal o`rnatilgan ADC yordamida raqamli signalga aylanadi.

ADC nima? Analog signal har qanday miqdordagi qiymatlarni qabul qilishi mumkin. Raqamli signal esa faqat ikkita qiymatga ega: HIGH va LOW. Arduinoda analog signallarning qiymatini o`lchash uchun o`rnatilgan analog-raqamli konvertor (ADC) mavjud. ADC analog kuchlanishni raqamli qiymatga aylantiradi. Analog signalning qiymatini olish uchun ishlatiladigan funksiya analogRead (pin) dir. Ushbu funksiya analog kirish pinining kuchlanish qiymatini o`zgartiradi va mos yozuvlar qiymatiga nisbatan 0 dan 1023 gacha raqamli qiymatni qaytaradi. Aksariyat Arduino UNOda A5gacha, Arduino Mega-da A15gacha va Arduino Mini va Nanoda A7 gacha pinlar mavjud. Pin raqami uning yagona parametridir.

PWM signalini chiqarish uchun analogWrite (pin, qiymat) funksiyasidan foydalaniladi. Qiymat =0 bo`lsa, signal har doim o`chirilgan bo`ladi. Qachonki qiymat=255 bo`lsa, signal har doim yoqilgan bo`ladi. PWM funksiyasi ko`plab Arduino platalarida 3, 5, 6, 9, 10 va 11-pinlarda ishlaydi. Ko`pgina pinlarda PWM signalining chastotasi taxminan 490 Gers ni tashkil qiladi. UNO va shunga o`xshash platalarda 5 va 6-pinlar taxminan 980 Gers chastotaga ega. Analog kirish qiymatini kerakli qurilmalar qiymatlariga moslashtirish uchun quyidagi funktsiyadan foydalanishingiz mumkin: map (qiymat, pastdan, yuqoridan, pastga, yuqoriga). Bu 0 dan 1023 gacha bo`lgan PWM chiqish signaligacha yani 0—255 oralig`ida bo`ladi. Bu funksiya beshta parametrga ega, birinchisi analog qiymat o`zgaruvchisidir, qolganlari esa mos ravishda 0, 1023, 0 va 255.

3.3.Arduino UNOda PWM, analog, raqamli pinlar

PWM (PWM) pinlarlari (Analog chiqish) 3, 5, 6, 9, 10, 11.

Analog pinlarlari (Analog kirish/chiqish) A0, A1, A2, A3, A4, A5.

Raqamli pinlarlari (Raqamli kirish/chiqish) 0 dan 13 gacha barcha portlar, foydalanish mumkin:

A0 – A5 gacha Analog pinlarlari raqamli pin sifatida ishlatiladi, agar umumiy maqsadli portlar yetarli bo`lmasa, masalan, plataga 15 ta svetodiodni ulashni xohlasangiz. Bundan tashqari, Arduino UNO va Nano platalarida A4 va A5 portlari I2C protokoli (SDA va SCL pinlari) uchun ishlatiladi – ular A4 va A5 pinlari bilan parallel ishlaydi.

Agar chiqish kuchlanishini tartibga solmoqchi bo`lsangiz, "~" belgisi bilan belgilangan pinlarni ishlatishingiz kerak. Arduino UNO uchun bular 3, 5, 6, 9, 10, 11. Analog portlar yordamida 0 dan 5 voltgacha bo`lgan har qanday kuchlanishni chiqarish mumkin va raqamli chiqishlarni faqat yoqish va o`chirish mumkin. Analog portlar PWM (pulse-width modulation), o`zbek tilida IKM (impuls kengligi modulyatsiyasi), rus tilida (широтно-импульсная модуляция) dan foydalanadi, bu analog signalni simulyatsiya qiladi.

Arduinoda analog pinlarni raqamli sifatida ishlatish

Ko`p qurilmalarni ulashda umumiy maqsadli pinlar etarli bo`lmasligi mumkin. Bunda dasturda analog pinlarni raqamli pinlar sifatida ishlatish mumkin.

void setup () {

pinMode (A3, OUTPUT); //A3 pinini raqamli chiqish sifatida e`lon qilish

}

Raqamli signal va analog signal o`rtasidagi farqni tushunish uchun, LED va rezistorli sxemani amaliyot taxtasida o`rnating. Analog chiqishni

~ 9 ga ulang. Chiqish portini Pin 9 ga ulang. Dasturni Arduino NANO yoki UNO platasiga yuklang.

Port 9 raqamli chiqish sifatida ishlashi mumkin. Agar digitalWrite funksiyasi analogWrite ga o`zgartirilsa, HIGH (1) va LOW (0) qiymatlari o`rniga 0 dan 255 gacha bo`lgan istalgan qiymatni qabul qiladi. Aynan shu oraliqda analog chiqishlardagi kuchlanish o`zgartiriladi. LEDni yoqish va o`chirish uchun dasturni yuklab oling. Ushbu dasturning ishlashining batafsil tavsifi quyida kodda berilgan.

3.4.Arduino UNOdagi analog portlar (A0-A5 pinlari)

Ushbu bo’limda Arduinoning analog A0-A5 portlarini ko`rib chiqamiz. Analog portlarning ishlash printsipini tahlil qilinadi, ularga nima ulanishi mumkinligi ko`rib chiqiladi. Amaliyot taxtasidan foydalanib, boshqariladigan yorug`lik bilan yoritgich sxemasini yig`amiz, shunda potensiyometr (o`zgaruvchan qarshilik) yordamida LEDning yorqinligini o`zgartirish mumkin bo`ladi. Arduino IDE tilida #define va analogRead direktivasini ko`rib chiqing.

3.3-rasm. Arduinoga potensiometrni ulash sxemasi


Arduinoda potensiometr uchun dastur:

void setup () {

Serial.begin (9600);

pinMode (A0, INPUT); // potansiometrni A0 kirishiga ulang

}

void loop () {

int qiymat = analogRead (A0); // A0 portidan ma`lumotlarni o`qish

Serial.print («Potensiometr qiymati ->»);

Serial.println (qiymat);

}

Arduinoda analog kirishlar

Arduinoning Atmega mikrokontrolleri olti kanalli analog-raqamli konvertorni (ADC) o`z ichiga oladi. Konvertorning ruxsati 10 bit bo`lib, 0 dan 1023 gacha qiymatlarni olish imkonini beradi. Arduino analog kirishlari vasifasi (Arduino UNOda (A0-A5) analog sensorlardan asosiy foydalanish qiymatlarni o`qish. Potansiyometrdan ko`rsatkichlarni olish uchun analog kirishdan foydalaniladi.

O`lchov bo`linmasining kichik qiymati deyarli har qanday miqdorning qiymatlarini katta aniqlik bilan olish imkonini beradi. Analog kiritishni o`qish uchun analogRead funksiyasidan foydalaning. Analog portlar digitalRead buyrug`i yordamida amalga oshirilishi mumkin, bu buyruq tugmachadan ma`lumotlarni o`qish uchun ishlatiladi. digitalWrite buyrug`i bilan esa LEDni boshqarishingiz mumkin.

3.5. Arduinoda analog signal va LED

int LED = 0; //LEDning dastlabki yorqinligi

int fade = 5; //LED yorqinligini o`zgartirish bosqichi

void setup () {

pinMode (9, OUTPUT); // chiqish ishlashi uchun Pin 9 dan foydalaning

}

void loop () {

//LED yorqinligini Pin 9ga o`rnating

analogWrite (9, LED); //har bir siklda berilgan so`ng miqdorini qo`shish orqali yorqinlikni o`zgartiring;

LED = LED + fade; //minimal va maksimal yorqinlikda o`chirish tartibini o`zgartiring;

if (LED == 0 || LED == 255) {

fade=-fade;

}

delay (20); //effektni pauza qilish

}

Tushuntirish:

1.AnalogWrite funksiyasi (pin, qiymat), bu yerda pin – signal qo`llaniladigan chiqish porti, qiymat-0 (to`liq o`chirilgan) va 255 (to`liq yoqilgan) orasidagi qiymat, LEDning yorqinligini yoki tezligini impuls kengligi modulyatsiyasi (PWM) yordamida boshqariladi.

2.LED o`zgaruvchi sikli har gal bajarilganda «0» boshlang`ich qiymatiga ega bo`ladi, fade ning berilgan qiymati LED qiymatiga qo`shiladi (bu dasturda fade =5).

LED o`zgaruvchisi maksimal qiymati 255 ga yetganda, fade -5 manfiy qiymatni oladi. Endi, har safar sikl bajarilganda, LED qiymatiga -5 qo`shiladi, ya`ni, har safar fade LEDdan ayriladi.

Arduinoda LEDning yorqinligini o`zgartirish

Ushbu bo’limda LEDning yorqinligini o`zgartiriladigan qurilmaning elektr sxemasini yig`amiz. Potensiometr yordamida 9-pinga ulangan LEDning yorqinligini o`zgartirishimiz mumkin. Potensiometrning ikki tarafdagi oyoqlari 5V va GND portlariga ulanadi, kuchlanish qiymati o`rta oyoqdan olinadi va Arduinoning A0 analog kirishiga ulanadi.

Elektr zanjirini ko`rsatilganidek yig`ing. Potensiometrning o`rta oyog`i kuchlanish ko`rsatkichlarini olish uchun A0 analog portiga ulanadi. Arduinoning 5V va GND portlariga ulash uchun, potensiometrni ikki tarafidagi oyoqlarini qay biriga ulanishi muhim emas. LEDning yorqinligini oshirish uchun faqat htugmachasining aylanish yo`nalishi o`zgartiriladi. Sxema tayyor bo`lgandan so`ng, Arduinoni kompyuterga ulab va dasturni yuklang.


3.4-rasm. Arduinoga led va potensiyometr ulash sxemasi


Arduinoda led va potensiyometr uchun dastur

#define LED_PIN 9 // LED bilan pinga nom bering

#define POT_PIN A0 // Potensiometr piniga nom bering

void setup () {

// LED pin chiqish

pinMode (LED_PIN, OUTPUT);

//potensiometrli pin kirish bo`ladi

pinMode (POT_PIN, INPUT);

// Serial port monitorini ishga tushiring

Serial.begin (9600);

}

void loop () {

//2 ta o`zgaruvchidan foydalanishimizni e`lon qilamiz – aylanish va yorqinlik

//o`zgaruvchilarda faqat butun sonlarni saqlaymiz (ing. «integer»)

int aylanish, yorqinlik;

//aylanish 0 dan 1023 gacha bo`lgan potentsiometr qiymatlariga teng

aylanish = analogRead (POT_PIN);

// o`zgaruvchan brightness 4 ga bo`lingan aylanishga teng bo`ladi

//yorqinlik faqat butun son bo`lishi mumkin, kasr qismi o`chiriladi

//natijada yorqinlik o`zgaruvchisi 0 dan 255 gacha bo`lgan oraliqda bo`ladi

yorqinlik = aylanish / 4;

//yorqinlik=aylanish/4 formulasi bo`yicha hisoblangan kuchlanish

analogWrite (LED_PIN, yorqinlik);

//aylanish qiymatini ketma-ket monitor portga yuboring

Serial.println (yorqinlik);

delay (500);

}

Tushuntirish: #define direktivasidan foydalanib, 9-pin raqamini LED_PIN nomi bilan almashtirdik, A0 analog kirishiga POT_PIN nomini berdik. Mahalliy o`zgaruvchi“aylanish“ kuchlanishga mutanosib va 0 dan 1023 gacha (ADC ning minimal va maksimal qiymatlari) oralig`ida bo`ladi. „yorqinlik“ o`zgaruvchisi esa 4 ga bo`lingan „aylanish”ga teng ya`ni 0 dan 255 gacha (analog kirishning minimal va maksimal qiymati).

4-bob. DASTURLASHNING TARKIBI

Arduinoda AVR mikrokontrollerlar uchun maxsus C/C++ dasturidan foydalaniladi.

4.1. setup () va loop () funksiyasi

Arduino dasturining bazaviy tarkibi ikkita majburiy qism setup () va loop () funksiyasidan iborat. setup () funksiyasidan o’zgaruvchi va kutubhonani ulash e`lon qilinadi. setup () funksiyasi bir marta ishga tushiriladi. U o’zgaruvchilarni inisializasiya qilishda, portlarni ishlash rejimini o`rnatishda va dasturning asosiy siklini tayyorlashda qo’llaniladi. U biror amalni bajarmasa ham dasturga bo`lishi kerak. loop () funksiyasi Arduinoda yozilgan buyruqni cheksiz ketma ketlikda bajaradi. Bu funksiya asosiy ishni siklik ravishda bajaradi.

Quyida sodda yozilgan dastur keltirilgan.

void setup ()

{

Serial.begin (9600);

}

void loop ()

{

Serial.println (millis ());

delay (1000);

}

4.2. Boshqaruvchi operatorlar

4.2.1. If shart operatori

Bugungi darsda If shart operatori bilan tanishamiz. Arduinoda har bir dasturlash tilida muntazam ishlatiladigan operatorlardan biri – if hisoblanadi. Aynan bu operatorsiz, biror bir mukammal dastur tuzishning umuman iloji yo`q. Shart operatori biror bir qo`yilgan shartni tekshirib, uning rost yoki yolg`onligidan kelib chiqqan holda biror bir amal yoki funksiyani bajarishiga yordam beruvchi vosita hisoblanadi.

Shart operatorining ikki xil ko`rinishi ya`ni, umumiy ko`rinishi va qisqa ko`rinishi mavjud.

Shart operatorining qisqa ko`rinishi:

if (shart) {bajariladigan operatsiya;}

Bu yerda if – agar, (shart) – tekshirilishi kerak bo`lgan yoki jarayon ishga tushishi uchun bajarilishi shart bo`lgan jarayon, {bajariladigan operatsiya;} – (shart) bajarilganda ishlashi kerak bo`lgan operatsiya.

Dastur yozayotganda shartdan so`ng; qo`yish mumkin emas. Agar shartdan so`ng qo`ysak jarayon shu yerning o`zida to`xtaydi va shartdan keyingi operatorga murojaat qilmaydi.

Operator-o`ziga yuklangan ma`lum bir shart asosida vazifani bajaruvchi vosita hisoblanadi va u dastur tuzishimizda bir qator qulayliklarga ega hisoblanadi.

Misol uchun jamiyatimizdagi insonlarni olsak, har bir insonni o`zi bajaradigan vazifasi bo`ladi. O`quvchining vazifasi o`qish bo`lsa, o`qituvchining vazifasi anashu o`quvchilarga bilim berishdan iborat.

Elektronika sohasida lampochka yoritish vazifasini bajarsa, sim ana shu lampochkani elektr ta`minotiga ulash vazifasini bajaradi.

4.2.2.O‘zlashtirish operatori – =.

O«zlashtirish operatori: = belgisidan chap tomonda turgan qiymatni = belgisidan o‘ng tomondagilarni hisoblangan qiymatiga almashtiradi. Masalan, x = a+b; ifodasi. Bu yerda“x»: a va b o‘zgaruvchining qiymatlarini qo‘shishdan hosil bo‘lgan natijani o‘zlashtiradi.

4.2.3.Tenglashtirish operatori. = =.

Tenglashtirish operatori== belgisidan o`ng tomonda turgan qiymat bilan chap tomonda turgan son qiymatini solishtirib, tenglashtirib ko`radi. Masalan, y==a+b; ifoda. Bu yerda «y»: a va b o‘zgaruvchilarnngi qiymatlarini qo‘shishdan hosil bo‘lgan natija bilan o`zining qiymatini tekshiradi. Agar tenglashtirilgan qiymat shartni qanoatlantirsa u holda operatsiyani bajaradi, agar tenglashtirilgan qiymat shartni qanoatlantirmasa shartning ichidan chiqib ketadi.

Bularga qo`shimcha tarzda <,> katta va kichik belgilaridan foydalanamiz.

Shart operatorining umumiy ko`rinishi:

if (shart) {bajariladigan operatsiya 1;}

else {bajariladigan operatsiya 2;}

bu yerda else-aks holda.

Shart 2 hil ko`rinishda boladi: rost (1) va yolg`on (0)

{bajariladigan operatsiya 1;} – Agar (shart) bajarilsa ya`ni rost (1) qiymatga ega bo`lsa bajarilishi kerak bo`lgan jarayon.

{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

}

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.

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 qarab, pin bir yoki nol qiymatini oladi. Misol:

pinMode (10,OUTPUT);

Ücretsiz ön izlemeyi tamamladınız.

Yaş sınırı:
12+
Litres'teki yayın tarihi:
05 haziran 2024
Hacim:
207 s. 113 illüstrasyon
ISBN:
9785006401464
İndirme biçimi:

Benzer kitaplar