Robototexnikadan boshlang’ich bilimlar
O’quv qo’llanma
Boxodir Xoshimovich Karimov
Akmaljon Olloberdiyevich Kuchkarov
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.