Mustaqil ish mavzu: Funksiyalar bilan ishlash (Serial monitorda haroratni ko‘rsatish, uzun o‘zgaruvchilardan foydalanish) Funktsiyalar bilan ishlash
Download 489.37 Kb.
|
Mustaqil ish bajardi Urnatilgan 2
- Bu sahifa navigatsiya:
- №14 loyiha: uzoq ozgaruvchilardan foydalanish
uzoq o'zgaruvchilarBir 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 foydalanishUzun 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 qarabGarchi 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling