Mundarija:

ATtiny84/85 SPI interfeysini qayta ishlatish: 6 qadam
ATtiny84/85 SPI interfeysini qayta ishlatish: 6 qadam

Video: ATtiny84/85 SPI interfeysini qayta ishlatish: 6 qadam

Video: ATtiny84/85 SPI interfeysini qayta ishlatish: 6 qadam
Video: Использование плат Digispark Attiny85 Mini Arduino: Урок 108 2024, Iyul
Anonim
ATtiny84/85 SPI interfeysini qayta ishlatish
ATtiny84/85 SPI interfeysini qayta ishlatish

Bu ko'rsatma "ketma-ket chiqish bilan ATtiny84/85 elektron nosozliklarni tuzatish" ni kuzatib boradi va dasturiy ta'minotni yuklash pimlarini dastur tomonidan qayta ishlatish muammosini hal qilish uchun apparat va dasturiy ta'minot konfiguratsiyasini kengaytiradi. Umuman olganda, ushbu bo'lim va 1 -bo'lim o'rtasida quyidagi mavzular muhokama qilinadi/ko'rsatiladi:

Mavzu ATtiny84 ATtiny85
SoftwareSerial sinfidan foydalanib ketma -ket aloqa X X
Qurilma pinlarini dastur va yuklab olish o'rtasida almashish X X
Pinni o'zgartirish uzilishi X
Tashqi uzilish X
POWER_DOWN rejimida uxlash; uzilishdan uyg'onish X
SoftwareSerial bilan bog'liq "ko'paytirilgan aniqlangan" uzilish vektorli xatoliklarni bartaraf etish X
ATtiny qurilmalarining elektron aylanishini o'zgartirish, yuklab olish, disk raskadrovka qilish,… rivojlanish tsikli X X

SPI dasturlash interfeysiga ajratilgan pinlardan biriga apparat kiritish -chiqarish komponentini qo'shish ba'zan yaxshi, ba'zida esa yo'q. Masalan, LEDni MISO -ga qo'shish, faqat yuklash paytida LEDning miltillashiga olib keladi va u ilova uchun mavjud bo'ladi. Biroq, MISO -ga piezo -signalni qo'shish dahshatli qichqiriq ovoziga olib keladi, so'ngra yuklab olishda xatolik yuz beradi.

Bu ko'rsatma SPI interfeysi MISO, MOSI va SCK signallariga yuklash paytida ularni himoya qilib, "tiklanish" uchun 4x2: 1 multipleksorni qanday ishlatishni tushuntiradi. RESET pinini qayta ishlatish sug'urta o'zgarishini talab qiladi va bu yondashuv bilan qamrab olinmaydi. Pimlarni ikkilamchi belgilash, yuklab olish davom etayotganiga qarab, dastur va dasturiy kirishlar o'rtasida o'tish uchun multipleksor yordamida amalga oshiriladi. Kod va sxemalar ATtiny84 va ATtiny85 uchun kiritilgan. ATiny84 konfiguratsiyasi birinchi navbatda ko'rib chiqiladi, chunki u ikkita kirish/chiqish portiga ega va ba'zi qo'shimcha muammolarni/echimlarni ko'rsatish uchun ishlatilishi mumkin. Tiny84 muhokamasidan so'ng, xuddi shu stsenariylar ATtiny85 uchun muhokama qilinadi.

1 -qadam: Kerakli apparat

Rasm
Rasm

Kerakli uskunalarning ko'pchiligi 1 -bo'limda ko'rsatma berilgan, shuning uchun quyida faqat yangi uskunalar keltirilgan.

Ism Mumkin bo'lgan manba Qanday ishlatilgan
4x2: 1 multipleksor Mouser SPI interfeysi signallari va I/O ilovasini ulash mexanizmi bo'lgan ikkita 2-kirish; 1-chiqish kalitlari mavjud.
SPST kaliti Har qanday kalit turi (lahzali yoki yopiq) ishlaydi. Kalit dastur kiritish uchun pin almashishni ko'rsatish uchun ishlatiladi.
10K qarshilik O'zgaruvchan kirishni oldini olish uchun SPST tugmachasi uchun pastga tushadigan qarshilik
Rasm
Rasm
Rasm
Rasm

Multiplexer - bu pinni yuklab olishni ishlatishdan ajratishning kalitidir. 4x2: 1 multipleksorining umumiy funktsiyasi 2 ta boshqaruv signallari va 4 ta bir xil ishlaydigan kalitlardan tashkil topgan. Har bir multipleksor pinining xatti -harakati quyida muhokama qilinadi:

Pin Ism Funktsiya
15 G Haqiqat jadvalida ko'rsatilgandek, multipleksor faqat G yoqish pimi past bo'lganda ishlaydi. Biz hech qachon multipleksorni to'liq o'chirishni xohlamaganimiz uchun, 15 -pin to'g'ridan -to'g'ri erga ulanadi.
2-4; 5-7; 9-11;12-14 A (kirish), B (kirish), Y (chiqish) 4 ta 2 ta kirish mavjud; Har bir 3 pinli guruhli 1-chiqish kalitlari ketma-ket A (kirish), B (kirish), Y (chiqish) tartibida raqamlangan. 1 -kalit uchun; pin 2 = 1A; pin 3 = 1B; pin 4 = 1Y.
1 Tanlang Tanlash past bo'lsa, A kalitli kirish moslamasi Y ga ulanadi. Kalitlar bir vaqtning o'zida Select signali tomonidan boshqariladi va bir xil ishlaydi.
8 GND IC multiplikatori
16 VCC ko'p tarmoqli IC kuchi

2 -qadam: Test holatlariga umumiy nuqtai

Rasm
Rasm
Rasm
Rasm

PIN -kodni qayta ishlatishning ikkita stsenariysi bu pin ilovaning kiritilishi yoki chiqishiga asoslangan. Har qanday kirishni boshqarish tartibi har doim bir xil; Bundan tashqari, dasturiy ta'minotning chiqish tartibi apparat tarkibiy qismidan qat'iy nazar bir xil bo'ladi. Shunga qaramay, aniq misollar keltirilsa, tushuntirish osonroq va umid qilamanki, aniqroq. Ikkala holat uchun minimalist sxemalar yuqorida ko'rsatilgan. Keyinchalik batafsil sozlash uchun ulanishlar biroz chivinlar uyasiga aylanadi, shuning uchun bu tozalovchi diagrammalarga murojaat qilish foydali bo'lishi mumkin.

RESET - bu multipleksorni tanlash uchun eng zo'r tanlov, chunki u yuklash paytida past bo'ladi, lekin yuklash tugagandan so'ng yuqori darajaga qaytadi. E'tibor bering, har qanday holatda ham multipleksorli kalitlardan foydalanish mumkin, chunki barcha kalitlar bir xil ishlaydi. Bundan tashqari, misollarning hech biri "haqiqiy" emas; ular izolyatsiya texnikasini tasvirlashning eng to'g'ri usuli sifatida tanlangan

  1. Chiqish holati: ATtiny84 pin 4 (SCK) dan LED chiqishi multipleksorli kalit 2 yordamida ajratilgan

    • 2A multipleksor pinini erga ulang
    • 2B multipleksor pinini ATtiny85 pin 4 ga ulang
    • 2Y chiqishini LED anodiga ulang

      • Kutilgan natijalar:

        • LED 2A ga ulanganligi sababli yuklash paytida o'chadi
        • 2B orqali yuklab olingandan so'ng, 4 -chiqish chiqish piniga LED ulanadi va miltillay boshlaydi
  2. Kirish holati: ATtiny84 pin 6 (MOSI) ga SPSTni kiritish multipleksorli kalit 3 yordamida ajratilgan.

    • AVR Programmer sarlavhasidagi MOSI simlari 3A ga ko'chiriladi
    • 3B kalitli kirish SPST chiqishiga ulangan
    • chiqish 3Y ATtiny84 pin 6 ga ulangan

      • 3A, MOSI, yuklash paytida 6 -pinga ulanadi
      • 3B, SPST chiqishi yuklanganidan keyin 6 -pinga ulanadi

1 -holat muvaffaqiyatli bo'ladi, agar LED dasturni yuklash paytida miltillamasa va har ikki soniyada dastur nazorat ostida kutilgandek yonib tursa. Yuklab olish paytida LED izolyatsiya qilinmasdan miltillaydi, chunki u to'g'ridan -to'g'ri SCK signaliga ulangan, bu holat ma'lumotni qabul qilish/uzatish holatiga o'zgartiradi.

2 -holat muvaffaqiyatli bo'ladi, agar MOSI signali yuklash paytida ATtiny84 -ga uzatilsa, ya'ni yuklash to'xtamasa va LED yuklanganidan keyin SPSTni yoqish/o'chirishga javob bersa. 2 -holat yuklashning mumkin bo'lmagan xatosini oldini oladi. Izolyatsiyasiz SPST tugmasi ishlamay qolishiga olib keladi, agar 1) qulflangan kalit ishlatilsa va 2) yuklash paytida kalit yoqilgan holatda qolsa. Multipleksor tomonidan ajratilganda, kalit hech qanday holatda yuklashning buzilishiga olib kelishi mumkin emas. Biroz cho'zilgan, lekin biz keksa odamlar uchun tasalli.

Multipleksorni ishlatishning bir natijasi shundaki, apparat komponentini endi to'g'ridan -to'g'ri mikrokontrollerning kirish -chiqish piniga ulab bo'lmaydi. Bu biroz noqulay, biroq test paytida komponent boshqa dasturiy uskunalar bilan birga non panelida qolishiga imkon beradi va test tugagandan so'ng uni to'g'ri joyiga qaytarish mumkin.

3 -qadam: ATtiny84 1 -holat - Ilova chiqishini ajratish

Rasm
Rasm

Bu qadam yuklash signalli dastur chiqish pinini ulashish sozlamalarini tasvirlaydi. Masalan, 4 -pin (SCK) ga ulangan LED. Misol sifatida mavjud LEDni ishlatish, 1 -qismning apparat va dasturiy muhitiga multipleksorni qo'shishga urg'u beradi.

  • Uskuna
    • Multiplexerni non paneliga yuqoridagi chizish diagrammasida ko'rsatilgan joyiga qo'shing. Multipleksor 2 -holatda kerak bo'lgan SPST kalitiga joy ajratish uchun markazga qarab joylashtirilgan.
    • ATTiny84 -pin 11 -dan 1 -multipleksorga qo'rg'oshin simini (sariq rangni) qo'shib, RESET signalini multipleksorga uzating.
    • Qolgan uskuna 2 -bosqichda ko'rsatilganidek

      • 2A multipleksor pinini to'g'ridan -to'g'ri erga ulang
      • 2B pinini ATtiny84 pin 4 ga ulang
      • 2Y chiqishini LED anodiga ulang

        • Kutilgan natijalar:

          • yuklash paytida 2Y erga (2A) ulanadi, shuning uchun LED o'chadi
          • Yuklab olingandan so'ng 2Y ATtiny84 pin 4 ga ulanadi - LEDni boshqarish ilovasi
  • Dasturiy ta'minot

    • 1 -qism kodi qayta ishlatiladi; 1 -qismdan foydalanish mumkin, bu erda takrorlanmaydi
    • 1 -qism dasturini Arduino IDE -ga yuklang va kompilyatsiya qiling
    • Tiny AVR dasturchisini kompyuterning USB portiga ulang
    • Adafruit USB -ni ketma -ket kabelga ikkinchi USB portiga ulang

      • MAQOMOTI porti yaratiladi va IDE portlar ro'yxatida avtomatik ravishda mavjud bo'ladi
      • COM oynasini ishga tushiring
    • Tuzilgan kodni ATtiny84 -ga yuklab oling

Ilova dasturi natijalari 1 -qism bilan bir xil, chunki faqat LEDni "himoyalangan" joyga ko'chirish kerak edi: LED 2 soniya oralig'ida miltillaydi; ketma -ket chiqish bir xil. Bo'lishi kerak bo'lgan yagona farq shundaki, yuklash paytida LED endi miltillamaydi, chunki u shu vaqt ichida 2A multipleksorli pin orqali erga ulanadi.

Rasm
Rasm

4 -qadam: ATtiny84 2 -holat - Ilovani kiritishni ajratish

Rasm
Rasm

Bu qadam oldingi chiqish izolyatsiya korpusining o'rnatilishiga asoslanadi. Uskuna o'zgarishi multiplexer orqali ATtiny84 pin 6 (MOSI) ga SPST kalitini ulashdan iborat. Shunday qilib, apparat o'zgarishi minimal, lekin bir nechta dasturiy ta'minot o'zgarishi mavjud, bu esa SPST tugmachasini pinni o'zgartirish uzilishidan foydalanib LEDni boshqarishga imkon beradi. Yangilangan kod ushbu bo'limning pastki qismiga kiritilgan. Kodni Arduino IDE -ga nusxalash kerak; uni Multiplexer_Input nomi bilan saqlashni taklif qiling. (Men bu bo'limning uzunligi uchun uzr so'rayman, lekin bu ko'rsatma beruvchilarning maqsadidir va menimcha, u sun'iy tanaffuslar o'rniga monolit sifatida yaxshiroq o'qiladi.)

Yangilash Manzil Maqsad
"buzilgan" SoftwareSerial sinfini o'z ichiga oladi bo'limni o'z ichiga oladi LED endi pin almashtirish uzilishi orqali SPST kaliti tomonidan boshqariladi. SoftwareSerial klassi o'zgartirilishi kerak, chunki aks holda u PIN -kodni o'zgartirishni to'xtatish vektorlarini ajratadi. Bu SPST kalitiga tayinlangan (port 0) vektori uchun "ko'p ta'rifli" havola xatosiga olib keladi. Hacklangan SoftwareSerial versiyasi dastur bilan bir xil katalogga joylashtirilishi kerak, shunda u faqat shu dasturga ta'sir qiladi.
SPST kirish pinining ta'rifi /ta'rif bo'limini o'z ichiga oladi qurilma piniga SPST kirishini tayinlash. PIN -kod qurilmaga xosdir, shuning uchun u #ifdef ATtiny8x bo'limiga qo'shiladi.
SPST kirish pin rejimi sozlash funktsiyasi SPST pimi INPUT sifatida sozlangan
SPST pin uzilishini sozlang sozlash funktsiyasi To'xtatish vektori SPST kirish piniga o'rnatiladi, shunda o'tish holatining o'zgarishi uzilishga olib keladi. Konfiguratsiya registrlari va uzilish turi qurilmaga xosdir. Kodni iloji boricha sodda qilish uchun, farqlar #if belgilangan bo'limda ko'rib chiqiladi
To'liq ketma -ket xabarni o'rnatish sozlash funktsiyasi O'rnatish tugallangan ketma -ket chiqish xabari Multiplexer Input ilovasini aks ettirish uchun o'zgartiriladi
IST funktsiyasining SPST kalitini qo'shing kod bo'limi SPST pinini o'zgartirish uchun ISR qo'shiladi. Kod keng tarqalgan, lekin ishlatiladigan vektor qurilmaga xosdir va dasturning yuqori qismidagi qurilmaga bog'liq bo'limlarda aniqlanadi. ISR faollashtirilganligini tekshirish uchun LED holati o'zgartiriladi. Haqiqiy dasturda no-no bo'lsa-da, yangi LED holatini aks ettiruvchi ketma-ket chiqish xabari yaratiladi.
Loop ishlov berishni o'zgartirish loop funktsiyasi ISR endi LEDni yoqish va o'chirishni boshqaradi, shunda funksiya pastadir tartibidan o'chiriladi. ATtiny84 uchun uyqu rejimiga qo'ng'iroq "qo'shimcha" sifatida qo'shiladi. Ushbu dastur uchun ATtiny85 uyqu ishlamaydi; Ehtimol, Software Serial sinfining aralashuvi tufayli, chunki u SoftwareSerial bilan ishlaydi.
Uyqu rejimini qo'shing kod bo'limi Multiplexerdan foydalanish uchun uyqu funktsiyasi shart emas. Qoida tariqasida, POWER_DOWN rejimida kirishni kutish, quvvatni tejashni emas, balki dastur tsikli orqali ishlashni davom ettirishdan oldin hech narsa qilmasdan amalga oshiriladi.

SoftwareSerial sinf kodini o'zgartiring

SoftwareSerial sinfini o'zgartirish kerak, shunda u barcha pinli uzilish portlarini ushlab turmaydi. SoftwareSerial sinf kodi manzilda joylashgan

C: / Program Files (x86) Arduino / hardware / arduino / avr / library / SoftwareSerial / src

Kodni o'zgartirish uchun boshlang'ich joyni topish uchun SoftwareSerial.cpp -dagi PCINT0_vect -ni toping. Quyidagi kodni #if belgilangan (PCINT0_vect) bayonotidan oldin darhol qo'shing.

#if aniqlangan (_ AVR_ATtiny84_)

#define MYPORT PCINT1_vect #elif belgilangan (_ AVR_ATtiny85_) #define MYPORT PCINT0_vect #endif ISR (MYPORT) {SoftwareSerial:: handle_interrupt (); }

Endi portni to'xtatish vektorlarini quyida ko'rsatilgandek taqsimlaydigan mavjud kod blokini sharhlang (faqat boshlanish va tugatish bloklari sharh belgilarini qo'shing * * va * /):

/*

#if belgilangan (PCINT0_vect) ISR (PCINT0_vect) {SoftwareSerial:: handle_interrupt (); } #endif #if belgilangan (PCINT1_vect) ISR (PCINT1_vect) {// SoftwareSerial:: handle_interrupt (); ISR (PCINT1_vect, ISR_ALIASOF (PCINT0_vect)); } #endif #if aniqlangan bo'lsa (PCINT2_vect) ISR (PCINT2_vect, ISR_ALIASOF (PCINT0_vect)); #endif #if aniqlangan (PCINT3_vect) ISR (PCINT3_vect, ISR_ALIASOF (PCINT0_vect)); #endif */

Uskunani sozlang

SPST kaliti 2 -bosqichda ko'rsatilgandek ATtiny84 pin 6 (MOSI) ga ulangan. Qulaylik uchun protsedura bu erda takrorlanadi.

  • 3A kalitli kirishni TOS AVR Programmer sarlavhasi MOSI simiga ulang
  • 3B ni SPST kaliti ON chiqish piniga ulang
  • 3Y ni ATtiny84 pin 6 ga ulang

    • Natijalar:

      • Yuklash paytida 3A, MOSI, ATtiny84 pin 6 ga ulanadi
      • 3B, SPST chiqishi, yuklanganidan keyin 6 -pinga ulanadi

Dasturni ishga tushiring

Ishlamasdan oldin SPST kalitini o'chirilgan holatga qo'ying. Aks holda, kalit o'chirilganda va aksincha, LED yonadi. Arduino IDE yordamida dasturlarni kiritish dasturini yuklash, kompilyatsiya qilish va yuklab olish uchun 3 -qadamdagi amallarni bajaring. Ilgari bo'lgani kabi, yuklash paytida LED miltillamasligi kerak, shuning uchun dasturning ishlayotganligini ko'rsatadigan yagona ko'rsatma - bu o'rnatish tartibining oxiridagi ketma -ket xabar: SETUP Complete - Input Example

Bu vaqtda dastur SPST kalitidan kirishni kutadi. Kalitni ON holatiga qo'yish LEDning yonishiga olib keladi; o'chirish holatiga qaytish LEDni o'chiradi. Chiqish xabarlari ISR chaqirilganligini tasdiqlaydi (ISR: Led HIGH, ISR: Led LOW). E'tibor bering, ketma -ket xabarlarning ketma -ketligi "SLEEP TO GO" ga o'tadi, shunda kalit o'zgaradi. kalit kirganda, ISR chaqiriladi, LEDni o'zgartiradi va o'zgarishlarni hujjatlashtiradi; keyin ishlov berish uyqu chaqirig'idan keyin boshlanadi, chunki uzilish protsessorni uyg'otadi.

Rasm
Rasm

BU QILISHSIZLIK DASTURI:

//************************************************************************

// 2 -QISM: Ilova/yuklash qurilmasi pinini ulashish //. 1 -qism kodini, SPI dasturlash interfeysiga tayinlangan // pinlarni qayta ishlatishni qo'llab -quvvatlash uchun o'zgartiradi //. ATtiny85 va ATtiny84 uchun "Comon" kodi // ************************************** ****************************** #"SoftwareSerial.h" ni qo'shing // O'zgartirilgan Arduino SoftwareSerial klassi #include // while ishlov berish kodi keng tarqalgan, ishlatilgan pinlar qurilmaga xos #if (_ AVR_ATtiny84_) || belgilangan (_ AVR_ATtiny84A_) #define ledPin 4 // ulangan Led -ni yoqish/o'chirish uchun o'zgartirilgan (MOSI) #ISR_VECT PCINT0_vectni belgilash // SPST tugmasi Pinni uzish vektorini uzatish #elif aniqlandi (_ AVR_ATtiny85_) #dePinePinePin 1 #dexine rxPin 4 #define txPin 3 #define SpstPin 2 // SPST kalitidan kirish (INT0) #define Idefine_define // SPST tugmachasi PIN -kodni o'zgartirish to'xtatish vektori #else #error Faqat ATiny84 va ATtiny85 ushbu loyiha tomonidan qo'llab -quvvatlanadi #endif // SoftwareSerial mySerial (rxPin) qabul qilish va uzatish uchun qaysi qurilma // pinlari ishlatilishini ko'rsatuvchi dasturiy ta'minot seriyasi namunasini yarating., txPin); // ------------------------------------------------ ------------------------ // Qayta ishlash resurslarini ishga tushiring // ------------------- -------------------------------------------------- --- void setup () {mySerial.begin (9600); // Seriyali ishlov berishni kechiktirishni boshlang (2000); // Serial Com portiga ishga tushirishni yakunlash uchun vaqt bering. // aks holda, 1 -chi chiqish bo'lishi mumkin pinMode (ledPin, OUTPUT); // OUTPUT pinMode (SpstPin, INPUT) uchun pinni sozlash; // SPST kalit pinini INPUT #ififlangan bo'lsa, sozlang (_ AVR_ATtiny84_) || (_AVR_ATtiny84A_) // 6 -pinli (MOSI) GIMSK | = (1 <

5 -qadam: ATtiny85 1 -holat - Ilova chiqishini ajratish

Rasm
Rasm

ATtiny85 uchun takroriy apparat o'rnatishni o'rniga, 4 -qadamdan ATtiny84 uchun tayyor konfiguratsiyadan boshlash va tiny84 chipini tiny85 bilan almashtirish osonroqdir. Keyin barcha kerakli uskunalar allaqachon mavjud. Agar bu usuldan foydalansangiz, tiny85 -ni toping, shunda 3 va 4 -pinlar ketma -ket tx kabelga to'g'ri keladi va simlarni qabul qiladi. Bu faqat SPI interfeysi simlarini ATtiny85 uchun kerakli joylarga mos keladigan joyga ko'chirish haqida.

Agar noldan boshlasangiz, 3 -qadamning umumiy bosqichlarini va yuqoridagi chizish diagrammasini bajaring. Kod 3 -bosqichda ATtiny84 uchun ishlatilgan bilan bir xil natijalar kutilmoqda - yuklash paytida miltillovchi yo'q; LED ishlaganda 2 soniya oralig'ida miltillaydi va ketma -ket chiqish xabarlari LED holatiga mos keladi.

Rasm
Rasm

6 -qadam: ATtiny85 2 -holat - Ilovani kiritishni ajratish

Rasm
Rasm

Uskuna o'rnatish uchun 5 -qadam konfiguratsiyasidan boshlang va yuqoridagi chizish diagrammasida ko'rsatilgandek SPST kalitini qo'shing. Men aslida tiny85 versiyasi uchun bir lahzali kalitdan foydalandim va bu tekshirishni biroz osonlashtiradi. E'tibor bering, kalit chiqishi ATtiny84 konfiguratsiyasidan 180 daraja buriladi. Bu o'zgarish ulanish simlarini yo'naltirishni osonlashtiradi, chunki barcha 3 SPI signallari ATtiny85 uchun bir tomonda.

ATtiny84 4 -qadam bilan bir xil dasturdan foydalaning. Xuddi shu umumiy natijalar kutiladi - LED o'zgaradi, SPST tugmasi yoqilganda/o'chadi va ketma -ket chiqish xabarlari o'zgarishlarni hujjatlashtiradi. ATTiny85 uchun uyqu funksiyasi chaqirilmaganligi sababli "UYG'A OCH" xabarlari yo'q. Xuddi shu dastur ishlatilgan bo'lsa -da, ATtiny85 -da faqat bitta port registri (0 -port) borligini hisobga olish uchun amalga oshirishda sezilarli farqlar mavjud:

  1. SoftwareSerial endi ketma -ket aloqa uchun 0 -pinli uzilish portini ajratadi (Eslatib o'tamiz, biz ATtiny84 uchun 1 -portdan foydalana oldik.)
  2. SPST kommutatori 0 (INT0) tashqi uzilish bilan amalga oshirilishi kerak, chunki bitta o'zgaruvchan uzilish SoftwareSerial tomonidan ajratilgan. Bu pin almashtirish uzilishlari va tashqi uzilishlar mantiqan mustaqildir va ularni bitta port registrida ishlatish mumkinligini ko'rsatadi.
  3. SoftwareSerial -ning o'zgartirilgan versiyasi yordamida hech narsa qo'lga kiritilmaydi - faqat bitta port bor va SoftwareSerial klassi uni tortib oladi. Biroq, o'zgartirilgan sinf hali ham ushbu qadamning maqsadiga bevosita bog'liq bo'lmagan o'zgarishlarning oldini olish uchun ishlatilgan.

Tavsiya: