Mundarija:
- 1 -qadam: O'rnatish - Avval uskunangizni o'rnating
- 2 -qadam: O'rnatish - Ekraningizni o'rnating
- 3 -qadam: Asosiy tugmachani o'rnating, keyin birga ulaning - 1 -qism
- 4 -qadam: Asosiy tugmachani o'rnating, keyin birga ulaning - 2 -qism
- 5 -qadam: Eskizlar / Dasturlarga umumiy nuqtai - Dasturning tuzilishi
- 6 -qadam: yuqoridan pastga dizayn
- 7 -qadam: Kontseptsiya va dizayn - 1 -qism
- 8 -qadam: Kontseptsiya va dizayn - 2 -qism
- 9 -qadam: Asosiy halqani tugating: A) USB -dan qabul qilish, B) Qul Arduino -dan qabul qilish
- 10 -qadam: Qul Arduino -da ma'lumotlarni qabul qilish va qayta ishlash
- 11 -qadam: Qabul qilish funktsiyasini yozing
- 12 -qadam: Qabul qilish pastki funktsiyasini yozing - 1 -qism
- 13 -qadam: Qabul qilish funktsiyasini yozing - 2 -qism
- 14 -qadam: O'tkazish va tahlil qilish funktsiyalarini yozing
- 15 -qadam: O'tkazish va tahlil qilish funktsiyalarini yozing
- 16 -qadam: Final
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14
Kirish
Devid Palmer, CDIO Tech. Aston universitetida.
Sizga biron bir raqamni bitta Arduino -dan boshqasiga yuborish kerak bo'lganmi? Bu ko'rsatma qanday qilib ko'rsatiladi.
Siz ketma -ket monitor terminaliga yuborish uchun raqamlar qatorini yozib, uning ishlashini osongina tekshirishingiz mumkin va ikkinchi Arduino -ga ulangan ikkinchi seriyali monitorda raqamlar qaytishini ko'rishingiz mumkin. Siz hatto Bluetooth havolasini ishlatishingiz mumkin.
Bu nima qiladi
Arduino -ning ikkita dasturini (Arduino -dagi eskizlar) ishlab chiqish kerak, bittasi Arduino -ning ketma -ket monitorida ishlaydigan asosiy kompyuterga ulanish uchun Master dasturi, Master -dan ketma -ket xabarni qabul qilish, kodni hal qilish va qaytarish uchun qul vazifasini bajaruvchi. Qul ixtiyoriy ravishda ikkinchi IDE -ning ketma -ket monitorida ishlaydigan raqamlarni ko'rsatishga qodir - agar siz buni ishlatmoqchi bo'lsangiz. Bu birinchi navbatda ishlarni bajarishga yordam beradi va agar siz o'zingizning talablaringizga muvofiq dasturlarga o'zgartirish kiritishga qaror qilsangiz.
Uskunalar
- 2 Arduino
- 2 ta USB kabeli
- patch simlari (kerak bo'lganda)
- Arduino IDE o'rnatilgan 1 ta kompyuter/noutbuk (Arduino.cc veb -saytidan bepul yuklab olish mumkin)
1 -qadam: O'rnatish - Avval uskunangizni o'rnating
2 Arduino -ni kompyuterning 2 ta USB portiga ulang.
Maslahat, ularni M va S (xo'jayin va qul) deb belgilash yaxshidir, shunda siz keyinchalik chalkashib ketmaysiz (bu erda 2 -rasmda ko'rsatilgan).
2 -qadam: O'rnatish - Ekraningizni o'rnating
Eng yaxshi narsa - ekranni shunday sozlash
- chapda Master dasturi yuklangan IDE va
- bu o'ngdagi qul bilan.
Bu erda ekran tasvirida ko'rsatilgandek, Maser va Slave seriyali monitorlarini chap va o'ngda saqlang.
3 -qadam: Asosiy tugmachani o'rnating, keyin birga ulaning - 1 -qism
Master End seriyali monitorini ikkita raqamni yuborish uchun o'rnatganingizda, siz bu erda ko'rib turganingizdek, har doim boshlanish va tugatish, ajratuvchi belgilar va vergulni ajratuvchi belgidan foydalanishingiz kerak.
Endi siz 2 Arduino -ni ketma -ket ulashingiz kerak. Bu ikkita yamoqli sim yordamida amalga oshiriladi.
Men yashil va sariq ranglardan foydalanardim
- Birinchidan, sariq rangni oling, bu bitta Arduino -da D6, ikkinchisida - D7 -ga ulanishi kerak
- Keyin yashil sim uchun qarama -qarshi, D7 birinchi va D6 ikkinchi Arduino.
Shu bilan bir qatorda, agar sizda Bluetooth modullari (masalan, HC -05 kabi) mavjud bo'lsa, ular sizga yuqoridagi simlar bilan bir xil effekt beradi.
4 -qadam: Asosiy tugmachani o'rnating, keyin birga ulaning - 2 -qism
Biz dasturiy ta'minot seriyali kutubxonasidan foydalanmoqdamiz. Qo'shimcha ma'lumotni bu havola orqali olish mumkin:
Siz uni dasturlarning 7-qatorida chaqirilganini ko'rishingiz mumkin. U raqamli 7 va 6 -pinlarni TX va RX (uzatish va qabul qilish) sifatida sozlaydi. Shunday qilib, ma'lumotlar Master Arduino -dan yashil sim orqali qulga o'tadi va ikkinchi Arduino -dagi Slave dasturi o'z ishini tugatgandan so'ng, sariq sim orqali qaytadi. Xuddi shu rasmning pastki qismida (ketma -ket monitor oynasida) biz uzatgan ma'lumotlar endi bu erda tasvirlangan tsiklni muvaffaqiyatli aylanib o'tganini va kompyuterga qaytganini ko'rishingiz mumkin, chunki butun sonlar yaxshi ajratilgan.
5 -qadam: Eskizlar / Dasturlarga umumiy nuqtai - Dasturning tuzilishi
Jadval barcha Arduino eskizlarida bo'lgani kabi, 3 asosiy qismdan iborat:
- Deklaratsiyalar
- O'rnatish
- Asosiy halqa
Biz tez -tez uchrab turadigan bo'lsak, biz bu erda "Funktsiyalar" qo'shilgan 4 -bo'limni ishlatdik. Agar siz "Funksiyalar" dan foydalanishni yaxshi bilmasangiz, "Arduino funktsiyalari" ni Google -da topishingiz mumkin va siz bu havoladagi misolga o'xshash tushuntirish saytlarini topasiz: www.tutorialspoint.com/arduino/arduino_functions…..
Shuningdek, biz dasturni boshqariladigan bloklarga ajratish uchun yorliqlardan foydalandik.
Biz ishlatgan uchta blokni yuqoridagi IDE oynalarining har bir rasmining yuqori qismida ko'rish mumkin:
- oddiyRxTx0330 ustasi
- umumiy
- eslatmalar
Bu, aslida, dastur papkasida joylashgan alohida fayllardir, buni Windows Explorer dasturida Slave dasturining fayllari ko'rinishida ko'rishingiz mumkin.
Buni qilishimizning juda yaxshi sababi bor.
- Dasturni tuzayotganda, biz xo'jayinga mo'ljallangan dasturlarning aksariyati qul bilan bir xil ekanligini tushundik.
- Biz oxirigacha barcha umumiy qismlarni "umumiy" deb nomlangan yorliqqa tortib oldik, so'ngra biz har safar bir qismini disk raskadrovka qilganimizda (sinovdan o'tkazdik va ishlaganidan mamnun bo'ldik), biz faqat o'sha yorliqni nusxa ko'chirdik va joylashtirdik. ustozdan qulgacha yoki viza aksincha.
- Eslatmalar yorlig'i ham bir xil bo'ladi, chunki dizayn umumiydir.
Funktsiyalarning hech biri sozlashdan chaqirilmagan, ularning hammasi loopdan chaqirilgan, shuning uchun biz ularni sozlashdan keyin, lekin tsikldan oldin yaratdik.
6 -qadam: yuqoridan pastga dizayn
Eskizni nima qilishni xohlayotganingizning ta'rifidan boshlab tuzish yaxshidir.
Buni olganingizdan so'ng, siz eskizni shunday qilishni boshlashingiz mumkin. Umuman olganda, agar siz hozircha qanday qilishni bilmaydigan tafsilotlar bo'lsa, uni funktsiyaga aylantiring va funktsiyani yaratishni keyinroq qoldiring.
Bu ko'plab universitetlarda o'qitiladigan va CDIO deb nomlangan yaxshi dizayn falsafasiga amal qiladi (Agar siz buni bilmasangiz, uni Google -ga o'tkazib, uni izohlaydigan saytlarni topishingiz mumkin: https://www.cdio.org/s.) Bu asosan shunday deydi: Kontseptsiya aniq bo'lgunga qadar dizaynni boshlamang. Dizayn aniq bo'lmaguncha, dasturni boshlamang. Amaliyot aniq bo'lmaguncha uning ishlashini kutmang. Birinchi navbatda C, keyin D, I va O. Har bir keyingi bosqichda siz takrorlanasiz (tsikl (lar) ning orqasiga qayting), shuning uchun siz birinchi marta dizayn konstruktsiyangizdan mamnun bo'lasiz va u hali ham Kontseptsiyaga mos kelishini tekshiring va yangilang. Agar kerak bo'lsa, C va hokazo, shuning uchun siz hatto operatsiya qilishingiz kerak bo'lsa ham, yuqoriga qayting va C ning hozir qanday ko'rinishini ko'rib chiqing, keyin D va men, va hamma narsani tekshirib ko'ring Agar kerak bo'lsa, dasturni eskizlari bilan, agar siz yuqoridan pastga dizayn qilsangiz, xuddi shunday ishlaydi.
7 -qadam: Kontseptsiya va dizayn - 1 -qism
Bu erda kontseptsiya "eslatmalar" yorlig'ida ko'rsatilgan asosiy talablarga o'xshaydi.
Dizayn eslatmalar yorlig'iga mos keladigan va bu rasmda ko'rinadigan narsaga o'xshash bo'lishi mumkin bo'lgan pastadirning dastlabki versiyasiga o'xshab ketishi mumkin
Men qanday boshlashni yoqtiraman, aslida CTRL-C sharhlarni birinchi navbatda ko'chadan boshiga ko'chirib, keyin bo'sh joylarni shu buyruqlar bilan to'ldirishni boshlang.
Rasmda ekranning pastki qismida ko'rib turganingizdek, bu OK ni tuzadi. Bu CDIO D bosqichidan I bosqichigacha etib bormoqda va biz kodni ishlab chiqishda bu D-I tsiklini aylanib o'tishni davom ettiramiz.
Endi keyingi bosqichga o'tish vaqti keldi, u erda biz: // uskuna USB -dan biror narsa olamiz, keyin uni dasturiy serial kanaliga uzatamiz degan izoh bor. Buni amalga oshirish uchun biz ushbu kodni yozamiz - bu erda 133 dan 138 gacha chiziqlar sariq rangda ko'rsatilgan
8 -qadam: Kontseptsiya va dizayn - 2 -qism
Bu erda biz kiritadigan ikkita birinchi ikkita funktsiya: (recv () va tran () apparat portidan qabul qilish va dasturiy portga uzatish, shuning uchun ularni "hw" yoki "sw" ko'rsatilgan parametrlar bilan chaqirish.
Ularga qo'shimcha ravishda, biz global o'zgaruvchiga newData deb nomlangan test qo'shdik. Bu "void recv ();" funktsiyasiga o'rnatiladigan bayroq. Xabar qabul qilinganda, bu o'zgaruvchi yolg'ondan rostga belgi qo'yiladi. Biz buni faqat xabarni 134 -qatorda qabul qilingan taqdirda (bayroq == rost) yuborishimiz uchun qilamiz. Va biz o'z ishimizni bajarganimiz haqidagi xabarni uzatganimizdan so'ng, biz bayroqni yana 137 -satrda yana yolg'onga olib tashlaymiz.
Yana biz kompilyatsiyani (Ddan Igacha) tekshirishimiz mumkin va bu safar bizda "e'lon qilinmagan" xato xabari bor (ko'rsatilgan). Bu bizga recv () ni e'lon qilmaganligimizni bildiradi; funktsiya. Biz buni keyinroq qilishni rejalashtirmoqdamiz, shuning uchun hozircha bizga toza kompilyatsiya olish uchun biz keyingi ko'rsatilgandek qo'g'irchoq yoki joy tutuvchi funktsiyasini yaratishimiz kerak.
Yana biz kompilyatsiyani tekshirib ko'rishimiz mumkin (D dan I gacha) va bu safar bizda tran () uchun boshqa "e'lon qilinmagan" xato xabari bor; funktsiya. Bunga o'xshash stub yaratish kerak. Yana biz kompilyatsiyani tekshirib ko'rishimiz mumkin (D dan I gacha) va bu safar biz bu ishni mukammal topamiz; Hozircha hammasi yaxshi.
9 -qadam: Asosiy halqani tugating: A) USB -dan qabul qilish, B) Qul Arduino -dan qabul qilish
Bu qismni tugatish uchun biz qo'shgan bitta oxirgi qism bor - bu disk raskadrovka kodini qo'shish.
Bu erda nima uchun qilganimizni tushunish uchun eskizlarni tuzatish bo'yicha yana bir ko'rsatma mavjud. "Arduino eskizlari ishlamaguncha qanday qurish va sinovdan o'tkazish" ko'rsatmasiga qarang.
Shunday qilib, bu disk raskadrovka satrlari [136-139 ko'rsatilgan] keyingi navbatda asosiy tsiklga qo'shiladi va mana, siz ularni disk raskadrovka o'zgaruvchisini to'g'rilab, Compiling (I) yordamida sinab ko'rishingiz mumkin. Siz Arduino -ni ulashingiz mumkin, siz yuklashingiz, ketma -ket monitorni ochishingiz va ketma -ket monitorga nima kirganini ko'rishingiz mumkin ("DEBUG MODE" xabari qo'shilganini ko'rasizmi?)
10 -qadam: Qul Arduino -da ma'lumotlarni qabul qilish va qayta ishlash
Qul Arduinodan qabul qilish
Ikkinchi kanal uchun kerakli kodni asosiy tsiklga, dasturiy ta'minotni ketma -ket qabul qiluvchiga ko'rsatilgandek qo'shing - 149-155 -qatorlar.
Ko'ryapsizmi, struktura usta ishi uchun yuqorida yozganlarimizga asoslanadi.
Bundan tashqari, biz kompilyator xatosi, boshqa e'lon qilinmagan funktsiyani olayotganimizni ko'rasiz - bu safar parseData (); - shuning uchun biz xatosiz test kompilyatorini ishga tushirishdan oldin, buning uchun ham stub qilishimiz kerak.
Slave Arduino -da ma'lumotlarni qayta ishlash
Arduino uchun zarur bo'lgan asosiy pastadir kodini qo'shing, agar u qul qurilmasi sifatida ko'rsatilgan bo'lsa - 163 dan 174 gacha chiziqlar. Uning tuzilishi birinchi kanalga juda o'xshashligini ko'ryapsizmi?
Va bu safar u juda yaxshi tuzilganini topishingiz kerak.
11 -qadam: Qabul qilish funktsiyasini yozing
Qabul qilish funktsiyasi - void recv (char from) {} - ikkita asosiy vazifaga ega.
1 USB kanalidan bir qator belgilarni olish uchun va
2 Arduino dan Arduino kanaliga birini qabul qilish.
Birinchisi uchun biz foydalanishimiz kerak bo'ladi, chunki u Arduino -da o'rnatilgan UART uskunasidan foydalanadi, ikkinchisida esa standart Arduino kutubxonasi: UART dasturi.
Qachonki biz funktsiyaga kod qo'shishni boshlasak - shunchaki biror narsa bajaradigan funktsiyani yaratish uchun - biz almashtirayotgan stubni olib tashlash yoki sharhlashni unutmasligimiz kerak. Aks holda, biz kompilyatsiya xatosini olamiz: "void lrec (char)" ni qayta tiklash.
Xatolikka yo'l qo'ymaslikka harakat qiling, keyin undan qutulish uchun yuqorida taklif qilingan usullardan birini ishlating.
Sariq rangdagi 75 dan 88 gacha chiziqlar ko'rsatadigan funktsiyadan boshlang.
Hozircha bilasizki, kodga ega bo'lsangiz, kompilyatsiya operatsiyasini sinab ko'rishingiz kerak bo'ladi. Bu sizga avvalgi xatolar kabi xatolarni keltirib chiqaradi: funktsiya nomi bu doirada e'lon qilinmagan. Bizga bu xatoni tuzishga ruxsat berish uchun avvaliga boshqa stub kerak bo'ladi, shuning uchun avvalgi kabi qo'shing va endi xatosiz kompilyatsiya olishingiz mumkinligiga ishonch hosil qiling.
Keling, recv () funktsiyasi uchun biz yozgan kodni ko'rib chiqaylik.
Bu juda toza, siz yuqorida ko'rsatilgan funktsiyaning ikkita qismini ishlab chiqarish uchun "if" shartidan foydalanishni ko'rishingiz mumkin.
"Sw" qismi va "hw" qismi ichidagi kod bir xil shaklda va men uni bu erda tasvirlab beraman.
Ikkala holatda ham chiziqlar juftligining birinchisi - vaqt tsiklining boshlanishi. Agar siz bu vaqtni bilmasangiz, uni Arduino.cc/Reference saytidan izoh va misollar uchun qidirib topishingiz mumkin. Bu erda biz kutamiz, "o'rnatilgan" Serial "funktsiyasi hech qanday belgi olmagan va newData o'zgaruvchisi o'chirilganligi sababli (ya'ni newData == noto'g'ri shart to'g'ri). Bir belgi yoki bir nechta belgi olinishi bilan, vaqt bu juftlikning ikkinchi qatoriga o'tadi. Keyin recAstringChar (char) chaqiriladi; joriy belgini boshqarish funktsiyasi. Bu chiziqlar bir -birini almashtirib turadi. Hammasi bajarilgandan so'ng, vaqt tugaydi, if yoki boshqa darajaga o'tishga ruxsat beradi va o'z navbatida rec (char) ga ruxsat beradi; tugatish funktsiyasi. Shunday qilib, endi to'liq xabar qabul qilindi.
12 -qadam: Qabul qilish pastki funktsiyasini yozing - 1 -qism
Endi biz recAstringChar (char) deb nomlangan funktsiyani yozishimiz kerak;. Siz sharhdan 50 -qatorning yuqori qismiga qaraysiz, uning vazifasi kiruvchi ketma -ket xabar nusxalari bilan ikkita buferni yangilashdir. [Ma'lum bo'lishicha, men hamma narsani hal qilmoqchi bo'lganimda, men bilganim shuki, menga ikki xil bufer kerak edi - yoki hech bo'lmaganda bu ba'zi muammolarni hal qilishning eng oson yo'li edi, shuning uchun u 2 tamponga aylandi. Men ularni hozirgina qildim.] Men bitta buferni chaqirdim:
Buferlar global o'zgaruvchilardir, shuning uchun ular modul darajasida e'lon qilinadi, umumiy tabning 9 va 10 -qatorlariga qarang. Bu funktsiya ichida e'lon qilingan boshqa o'zgaruvchilar mavjud, shuning uchun bu erda 51-54-qatorlarda mahalliy doiraga ega. Bu global va mahalliy aholi o'rtasidagi farqni tushuntirish uchun joy emas, lekin bu haqda ko'proq ma'lumot https://www.arduino.cc/glossary/en/ Mahalliy va Global ostida.
Ma'lumotlar turlarini va turini o'zgartiruvchilar haqida ham bilib olishingiz mumkin: statik, boolean, bayt, const, char https://www.arduino.cc/reference/en/#variables, bu erda ko'rsatilgan.
Bu funktsiyadagi asosiy dasturlar oqimi bu erda 56 -satrda, boshqasi esa 74 -satrda boshqariladi. Bu ikkita stsenariy bilan bog'liq.
a) qabul qilingan xabar boshlanganda [74 -qatordan]. Bu startMarker aniqlanganda sodir bo'ladi - bu "<" belgisi sifatida belgilanadi, shuning uchun biz eskizni sinab ko'rganimizda, biz har doim o'z simimizni shu belgidan boshlaymiz. Agar shunday qilmasak, hech narsa qabul qilinmaydi, biz "Serial Monitor" klaviatura buyrug'iga bema'nilik kiritayotgandek, hammasi e'tiborga olinmaydi.
b) [56 dan 73 gacha satrlar], ular nima bo'lishidan qat'i nazar, boshqa barcha belgilarni qabul qiladi, lekin ular faqat to'g'ri boshlanganidan keyin ("a" yuqoridagi kabi) qabul qilinganidan keyin belgilar bilan shug'ullanadi.)
Bu satrlarda (74 dan 78 gacha) biz qabul qilingan <ni buferlardan biriga (Biz ndx ++ satridagi post-increment buyrug'i (++) yordamida bufer ko'rsatgichini (o'zgarmaydigan: char ndx) keyingi zaxira bufer holatiga (qabul qilinganData [1]) ishora qilib sozlaymiz;, va biz davom etayotgan bayroqni rost qilib qo'ydik.
Funktsiyaning bu qismidagi dasturlar oqimi bu erda 57 -satrda, boshqasi esa 65 -satrda boshqariladi. Bu ikkita stsenariyni ko'rib chiqadi.
a) [65 -qatordan boshlab] qabul qilingan xabar tugaganda. Bu endMarker aniqlanganda sodir bo'ladi -> deb ta'riflanadi, shuning uchun biz eskizni sinab ko'rganimizda, biz har doim o'z simimizni shu belgi bilan tugatamiz. Oxirgi belgi qabul qilinganda sodir bo'ladigan narsalardan biri shundaki, global bayroq (texnik jihatdan o'zgaruvchan) newData funktsiya tugashi bilan to'g'ri o'rnatiladi, shuning uchun bizning kichik funktsiyamiz (chaqiruv funktsiyasi: recv (char);) haqiqiy yangi ma'lumotlar to'liq qabul qilinganligini "bilishi" mumkin.
b) boshqa belgilarni, nima bo'lishidan qat'i nazar, qabul qiladigan [57-64 -qatorlar]. Bu ularni tamponlarning har ikkalasida ham tartibli ravishda park qiladi.
13 -qadam: Qabul qilish funktsiyasini yozing - 2 -qism
Bu buferlar to'ldirilganda qanday ko'rinishini misol qilib keltirishga yordam berishi mumkin. Agar biz kirishni kiritmoqchi bo'lsak, buferlarda belgilar ko'rsatiladi:
Shunday qilib, endi bizda biz kiritgan belgilar bir xil bo'lgan bitta bufer va ikkita qiymat va ajratuvchi vergul bo'lgan bitta bufer borligini ko'rishingiz mumkin. Endi bizda ketma-ket monitor klaviaturasida yozilgan belgilarni qabul qiladigan kod bor, biz CDIO I bosqichidan O ga o'tamiz, ba'zi qatorlarni yozamiz va nima bo'lishini ko'ramiz. Kodni Master Arduino -ga yuklang, ketma -ket monitorni oching va "enter" kabi yaroqli narsani yozib ko'ring. Siz ketma -ket monitor ekranida bu erda ko'rsatilgandek aks -sado olasizmi?
14 -qadam: O'tkazish va tahlil qilish funktsiyalarini yozing
Birinchidan, uzatish uchun
Shunday qilib, endi biz bir qator oldik, uzatish funktsiyasini yozishimiz mumkin: tran (char); uning dastasini almashtirish uchun. Bu bizga ustozdan qul Arduinoga sim yuborishga imkon beradi.
Shunday qilib, ushbu yangi funktsiyani sinab ko'rish uchun ikkala qurilma ham ulangan va ulanganligiga ishonch hosil qiling.
Bu funktsiyani 117 - 133 -qatorlarda ko'rsatilgandek kiriting. Siz bilganingizdek, u ikki qismdan iborat: biri USB -kanalga (UART -apparat), ikkinchisi Arduino -ga (UART -dasturiy ta'minot). Bu xato tuzishi kerak. -bepul, va siz darhol eskizni yuklashingiz va nima bo'lishini ko'rishingiz mumkin. Bu safar yuboraman. Ko'rsatilgan natijani olasizmi?
Ekran tasviri qiziqarli, chunki Qabul qilingan satr avvalgidek to'g'ri ko'rinishi kerak, va uzatilgan satr esa endi to'g'ri ko'rinishi kerak. Shunga qaramay, butun sonli konvertatsiya ishlamaganligini unutmang. Buni amalga oshirish uchun yana bir nechta kod qo'shish kerak.
15 -qadam: O'tkazish va tahlil qilish funktsiyalarini yozing
Keyin tahlil uchun
Bu raqamli qisman satrlarni olish uchun olingan satrni tahlil qiladigan va ularni butun sonli qiymatlarga o'zgartiradigan kod. Bu bo'sh parseData (); asosiy tsiklning funktsiyasi
Tahlil stubini 98 - 113 -qatorlarda ko'rsatilgan kod bilan almashtiring. Yuklab oling va keling, 2 ta butun sonli muammo bilan bog'liq muammo hal qilinganligini ko'raylik. Kel urinib ko'ramiz.
Ha, u ishlaydi, ko'rsatilganidek, topilgan butun sonlar 49 va 98.
16 -qadam: Final
Bu ma'lumotlar kompyuterdan Master orqali qul orqali, Master orqali yana kompyuterga qaytdi. "Master" va "slave" uchlariga yuklangan umumiy versiya va disk raskadrovka rejimi o'chirilgan bo'lsa, biz bu erda ko'rsatilganidek, har ikki uchida ham to'g'ri qabul qilingan ma'lumotlarni ko'ramiz.
Tavsiya:
ESP8266: 5 qadam yordamida SMS yuboring
ESP8266 yordamida SMS yuborish: Bu ko'rsatma sizga Internet orqali ESP8266 NodeMCU modul kartasidan mobil telefonga SMS yuborish bosqichlarini ko'rsatadi. Xabarni jo'natish uchun siz virtual telefon raqamini olish uchun quyidagi bosqichlardan o'tishingiz kerak bo'ladi
DIY 3D bosma bitta raqamli Arduino soati: 4 qadam
DIY 3D bosma bitta raqamli Arduino soati: bitta katta raqamli, to'liq ishlaydigan Arduino nano soat
Hammasi bitta raqamli xronometrda (soat, taymer, signal, harorat): 10 qadam (rasmlar bilan)
Hammasi bitta raqamli xronometrda (soat, taymer, signal, harorat): biz boshqa musobaqalarga taymer yasashni rejalashtirgandik, lekin keyinchalik biz soatni ham (RTCsiz) qo'lladik. Dasturlashni boshlaganimizda, biz qurilmaga ko'proq funktsiyalarni qo'llashni xohladik va DS3231 RTC -ni qo'shdik
Fitbit -dagi barcha ma'lumotlarni bitta boshqaruv panelida ko'ring: 5 qadam
Fitbit haqidagi barcha ma'lumotlaringizni bitta boshqaruv panelida ko'ring: Bu yangi yil, demak, hammamiz yangi maqsadlarga erishdik. Yangi yilning umumiy maqsadi - sog'lom bo'lish, xoh yaxshiroq ovqatlanishni, xoh ko'proq harakat qilishni yoki umuman faol bo'lishni anglatadimi? Bu mening Fitbit -ni kuzatib borishning eng sevimli usuli.
MotoStudent elektr poygasi uchun ma'lumotlarni yig'ish va ma'lumotlarni vizualizatsiya tizimi: 23 qadam
MotoStudent elektr poygasi uchun ma'lumotlarni yig'ish va ma'lumotlarni vizualizatsiya qilish tizimi: Ma'lumot yig'ish tizimi - bu tashqi sensorlardan ma'lumotlarni yig'ish, keyinchalik saqlash va qayta ishlash uchun birgalikda ishlaydigan apparat va dasturiy ta'minot yig'indisi, uni grafik ko'rinishida va tahlil qilish uchun, muhandislarga ruxsat berish