Читать книгу Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma - Boxodir Xoshimovich Karimov - Страница 16

4-bob. DASTURLASHNING TARKIBI
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.

Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma

Подняться наверх