Mustaqil ish mavzu: Funksiyalar bilan ishlash (Serial monitorda haroratni ko‘rsatish, uzun o‘zgaruvchilardan foydalanish) Funktsiyalar bilan ishlash


Download 489.37 Kb.
bet7/7
Sana02.01.2023
Hajmi489.37 Kb.
#1075028
1   2   3   4   5   6   7
Bog'liq
Mustaqil ish bajardi Urnatilgan 2

uzoq o'zgaruvchilar


Bir nechta raqamli raqamlarni qabul qilish uchun Serial Monitordan foydalanish uchun biz eskizimizga yangi kod qo'shishimiz kerak, buni tez orada ko'rasiz. Kattaroq raqamlar bilan ishlashda esa, int o'zgaruvchi turi cheklashi mumkin, chunki u maksimal qiymat 32,767 ga teng. Yaxshiyamki, biz bu cheklovni long o'zgaruvchi turidan foydalanib kengaytirishimiz mumkin. Uzoq o'zgaruvchi -2,147,483,648 va 2,147,483,647 oralig'idagi butun son bo'lib, int o'zgaruvchisidan (-32,768 dan 32,767 gacha) ancha katta diapazondir .

№14 loyiha: uzoq o'zgaruvchilardan foydalanish


Uzun o'zgaruvchilar va bir raqamdan katta raqamlarni qabul qilish uchun biz ketma-ket monitordan foydalanamiz . Ushbu eskiz bir nechta ko'p sonlarni qabul qiladi, bu raqamni 2 ga ko'paytiradi va natijani Serial Monitorga qaytaradi.
// Loyiha 14 - Uzoq o'zgaruvchilardan foydalanish
uzun raqam = 0; uzun a = 0;
bekor o'rnatish()
{
Serial.begin(9600);
}
void loop()
{
raqam = 0; // yangi o'qish uchun kiruvchi raqamni nolga qo'ying
Serial.flush(); // kutishdan oldin ketma-ket buferdan har qanday "axlat" ni tozalang
esa (Serial.available() == 0)
{
// ketma-ket buferga biror narsa tushmaguncha hech narsa qilmang,
// biror narsa kirganda, Serial.available qancha sonni qaytaradi
// belgilar buferda ishlov berishni kutmoqda
}
// ketma-ket ma'lumotlarning bitta belgisi mavjud, hisoblashni boshlang
while (Serial.available() > 0)
{
// oldingi istalgan raqamni chapdagi keyingi ustunga o'tkazish;
// boshqacha qilib aytganda, buferda ma'lumotlar mavjud bo'lganda 1 10 ga aylanadi
raqam = raqam * 10;
// buferdagi keyingi raqamni o'qing va 0 belgisini olib tashlang
// undan haqiqiy butun songa aylantirish uchun
a = Serial.read() - '0';
// ushbu a qiymatini yig'ilayotgan raqamga qo'shing
raqam = raqam + a;
// ko'proq seriyali ma'lumotlarning Serial.available-ga kelishi uchun qisqa kechikishga ruxsat bering
kechikish (5);
}
Serial.print("Siz kiritdingiz: ");
Serial.println(raqam);
Serial.print(raqam);
Serial.print(" ikkiga ko'paytirilsa ");
raqam = raqam * 2; Serial.println(raqam);
}
Ushbu misolda ikkita while tsikli Arduino-ga Serial Monitordan bir nechta raqamlarni qabul qilish imkonini beradi. Birinchi raqam kiritilganda (kiritilgan raqamning eng chap raqami), u raqamga aylantiriladi va keyin umumiy o'zgaruvchan raqamga qo'shiladi . Agar bu yagona raqam bo'lsa, eskiz davom etadi. Agar boshqa raqam kiritilsa (masalan, 42 da 2 ), birinchi raqamni chapga siljitish uchun jami 10 ga ko'paytiriladi va keyin yangi raqam jamiga qo'shiladi. Ushbu tsikl eng o'ngdagi raqam jamiga qo'shilmaguncha takrorlanadi.
5-6-rasmda ushbu eskizning kirish va chiqishi ko'rsatilgan.

5-6-rasm: 14-loyihadan namuna kiritish va chiqish

oldinga qarab


Garchi bu bob biroz quruqdek tuyulgan boʻlsa-da, oʻz funksiyalaringizni yaratish qobiliyati eskizlaringizni soddalashtirib, vaqt va kuchingizni tejaydigan muhim mahoratdir. Keyingi bobda bu bilimlardan unumli foydalanasiz
Download 489.37 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling