Boxodir Xoshimovich Karimov "Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma"

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.

date_range Год издания :

foundation Издательство :Издательские решения

person Автор :

workspaces ISBN :9785006401464

child_care Возрастное ограничение : 12

update Дата обновления : 06.06.2024


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);

4.4.2.digitalWrite () va analogWrite () funksiyalari

Raqamli pin digitalWrite () buyrug`i yordamida raqamli chiqish signal hosil qilishi mumkin. Raqamli signal ikkita qiymatga ega bo`ladi; – 0 yoki 1 (0 volt yoki 5 volt).

void setup () {

pinMode (11, OUTPUT);

digitalWrite (11, HIGH); delay (500);

digitalWrite (11, LOW); delay (500);}

40 mA dan ortiq quvvat sarflaydigan qurilmalarni Arduino pinlariga ulash mumkin emas, chunki mikrokontrollerning asosiy maqsadi mantiqiy signallar yordamida boshqa qurilmalarni boshqarishdir. Agar qurilmani belgilangan qiymatdan ko`proq iste`mol qiladigan pinga ulasangiz, u holda pinga zarar etishi mumkin. Bu holda relelardan foudalaniladi.

4.5.VAQT BILAN ISHLASH

4.5.1.Arduino kechikishi: delay ()

Arduinoda delay () funksiyasi muhim rol o`ynaydi va bu buyruq aksariyat dasturni yozish deyarli mumkin emas. Arduino dasturlashda vaqtni kechiktirishning delay () buyrug`ining maqsadi va ishlatilishini quyida ko`rib chiqamiz. Hozir biz faqat delay kechiktirish funksiyasining asosiy xususiyatlarini ko`rib chiqamiz va kichik dasturlar shaklida foydalanish misolini keltiramiz. Ishlash uchun sizga faqat Arduino platasining o`zi kerak bo`ladi.

Arduinoda delay ()

delay buyrug`i belgilangan millisekundlar (1 soniyada 1000 millisekund) uchun dasturning bajarilishini to`xtatadi. delay () funksiyasidan foydalangan holda dasturning kechikishi paytida plataga ulangan sensorlarni o`qib bo`lmaydi yoki boshqa operatsiyalarni bajarish mumkin emas.

Dastur:

// Svetodiodni miltillashi uchun delay () dan foydalanish misoli

void setup () {

pinMode (13, OUTPUT);

}

void loop () {

digitalWrite (13, HIGH);//chiqishga YUQORI signal yuboring

delay (100); // 100 millisekundga kechikish vaqti

digitalWrite (13, LOW);//chiqishga PAST signalni yuboring

delay (100);} //100 millisekundga kechikish vaqti

4.6.MATEMATIK FUNKSIYALAR

4.6.1.Arduinoda map () funksiyasi

Arduinodagi map funksiyasi qiymatni joriy diapazondan parametrlar bilan ko`rsatilgan qiymatlarning yangi diapazoniga o`tkazadi – map qiymat, fromLow (pastdan), fromHigh (yuqoridan), toLow (pastga), toHigh (yuqoriga). map () buyrug`i faqat butun sonlarda ishlaydi. Raqamning kasr qismi proportsional uzatishda matematika qoidalariga ko`ra yaxlitlanmaydi, balki shunchaki o`chiriladi. Arduino IDE-da map funksiyasidan misollar bilan foydalanishni ko`rib chiqamiz.

Arduino IDE-da map funktsiyasi

map (qiymat, fromLow, fromHigh, toLow, toHigh)

*qiymat: belgilangan qiymat

*fromLow: joriy diapazonning pastki chegarasi

*fromHigh: joriy diapazonning yuqori chegarasi

*toLow: yangi diapazonning pastki chegarasi

*toHigh: yangi diapazonning yuqori chegarasi

Arduinoda map funksiyasiga misol:

void setup () {

pinMode (A1, INPUT); // analog sensorni ulang

pinMode (10, OUTPUT); //LEDni ulang

}

void loop () {

// «qiymat» o`zgaruvchisi 0 dan 1023 gacha

int qiymat = analogRead (A1);

//analog qiymatni 8 bitli raqamga o`zgartiring (0 dan 255 gacha)

qiymat = map (qiymat, 0, 1023, 0, 255);

//yangi «qiymat» qiymati bilan svetodiodni yoqing

analogWrite (10, qiymat);

}

map funktsiyasi diapazonni o`zgartirishi mumkinligini unutmang, ya`ni «pastki chegara» «yuqori chegara» dan kattaroq bo`lishi ham mumkin. Misol:

qiymat = map (qiymat, 0, 1023, 255, 0);

Eslatib o`tamiz, map () funksiyasi yordamida o`zgartirilganda raqamning kasr qismi yaxlitlanmaydi, balki o`chiriladi (hisobga olinmaydi). Arduino dasturlash tilida float ma`lumotlar turi bilan ishlashda bu faktni hisobga olish kerak.

4.7.TASODIFIY KATTALIKLAR GENERATORI

4.7.1.Arduinoda random va random Seed funksiyasi

Arduino rondom funksiyasi psevdo-tasodifiy raqamni qaytaradi, ya`ni tasodifiy sonlarni yaratish ketma-ketligi hali ham oldindan aytib bo`ladi. Random Seed funksiyasi ko`proq tasodifiy qiymatlarni yaratish uchun tasodifiy funksiyaga o`zgaruvchi yoki doimiyni qo`yish imkonini beradi. Arduino IDE dasturlash tilida ma’lum bir diapazondagi tasodifiy sonni qanday qilib to`g`ri belgilashni aniqlaymiz.

random – Arduinoda tasodifiy sonlar yaratish

Random (min, max) funksiyasi min va maksimal qiymatlar bilan belgilangan diapazonda psevdo-tasodifiy raqamni qaytarish imkonini beradi. Keling, turli xil ma`lumotlar turlariga ega misollarni ko`rib chiqaylik.

Taqdim etilgan misolda 0 dan 250 gacha bo`lgan oraliqda butun sonlarni saqlaydigan byte ma`lumotlar turi tanlanadi. Boshqa ma`lumotlar turlaridan foydalanish mumkin: int, long, unsigned long, unsigned int va boshqalar. Shunga ko`ra, kerakli diapazon (min, max) o`rnatiladi.

byte malumotlar;

void setup () {

Serial.begin (9600);

}

void loop () {

malumotlar = random (100, 200); //diapazondagi arduino tasodifiy soni Serial.println (malumotlar);

delay (250);

}

4.7.2.Arduinoda random float

Mikrokontroller faqat butun sonlarni yaratishi mumkin. Shuning uchun, ikkita kasrli float ma`lumotlar turini olish uchun alohida butun son hosil qilishingiz va unga o`nli kasrlar qo`shishingiz kerak. Bunday dasturga misol:

float malumotlar;

float malumotlar1;

float malumotlar2;

void setup () {

Serial.begin (9600);

}

void loop () {

Все книги на сайте предоставены для ознакомления и защищены авторским правом