Բովանդակություն:
- Քայլ 1: Պահանջվող սարքավորում
- Քայլ 2. Փորձարկման դեպքերի ակնարկ
- Քայլ 3. ATtiny84 Case 1 - Մեկուսացնել կիրառման ելքը
- Քայլ 4. ATtiny84 Case 2 - Մեկուսացնել հայտի մուտքագրումը
- Քայլ 5. ATtiny85 Case 1 - Մեկուսացնել կիրառման ելքը
- Քայլ 6. ATtiny85 Case 2 - Մեկուսացնել հայտի մուտքագրումը
Video: ATtiny84/85 SPI ինտերֆեյսի կապի կրկնակի օգտագործում. 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Այս հրահանգը հետևում է «ATtiny84/85 In-Circuit Debugging with Serial Output» հրահանգավորմանը և ընդլայնում է այդ ապարատային և ծրագրային կազմաձևերը `դիմումային ծրագրով ծրագրավորման ներլցման կապերի վերագործարկման խնդրի լուծման համար: Ընդհանուր առմամբ, ուսանելի և 1 -ին մասի միջև քննարկվում/ցուցադրվում են հետևյալ թեմաները.
Թեմա | ATtiny84 | ATtiny85 |
---|---|---|
Սերիական հաղորդակցություն `օգտագործելով SoftwareSerial դասը | X | X |
Deviceրագրի և ներբեռնման միջև սարքի կապում տարածելը | X | X |
Pin Change ընդհատում | X | |
Արտաքին ընդհատում | X | |
Քնել POWER_DOWN ռեժիմում; արթնանալ ընդհատման ժամանակ | X | |
Աշխատանքային ծրագիր «SoftwareSerial»-ի հետ կապված «բազմապատկված» ընդհատման վեկտորային կապի սխալի համար | X | |
In-circuit- ում ATtiny սարքերի համար փոփոխել, ներբեռնել, կարգաբերել,… մշակել ցիկլը | X | X |
Սարքավորման մուտքի/ելքի բաղադրիչ ավելացնելը SPI ծրագրավորման ինտերֆեյսին նվիրված կապումներից մեկին երբեմն նորմալ է, երբեմն ՝ ոչ: Օրինակ, LED- ի MISO- ին ավելացնելը պարզապես առաջացնում է LED- ի բոցավառումը ներբեռնման ընթացքում, այնուհետև այն հասանելի է հավելվածի համար: Այնուամենայնիվ, MISO- ին պիեզո -ազդանշանի ավելացումը կհանգեցնի սարսափելի աղմուկի, որին կհաջորդի ներբեռնումը:
Այս հրահանգը բացատրում է, թե ինչպես օգտագործել 4x2: 1 մուլտիպլեքսեր ՝ «վերականգնելու» SPI ինտերֆեյսի MISO, MOSI և SCK ազդանշաններին հատկացված քորոցների օգտագործումը ՝ պաշտպանելով դրանք ներբեռնման ընթացքում: RESET քորոցի վերաօգտագործումը պահանջում է ապահովիչի փոփոխություն և չի լուսաբանվում այս մոտեցմամբ: Կապերի կրկնակի նշանակումը կատարվում է մուլտիպլեքսերի միջոցով `դիմումի և ծրագրավորման մուտքերի միջև անցում կատարելու համար` կախված ներլցման ընթացքի ընթացքից: Կոդն ու սխեմաները ներառված են ինչպես ATtiny84- ի, այնպես էլ ATtiny85- ի համար: ATiny84 կոնֆիգուրացիան առաջին հերթին հասցեագրված է, քանի որ այն ունի երկու մուտք/ելք և կարող է օգտագործվել որոշ լրացուցիչ խնդիրներ/լուծումներ պատկերելու համար: Փոքր 84 -ի քննարկումից հետո նույն սցենարները քննարկվում են ATtiny85- ի համար:
Քայլ 1: Պահանջվող սարքավորում
Պահանջվող սարքավորումների մեծ մասը թվարկված էր ուսանելի 1 -ին մասում, այնպես որ միայն նոր սարքավորումները թվարկված են ստորև:
Անուն | Հնարավոր աղբյուր | Ինչպես է օգտագործվում |
---|---|---|
4x2: 1 մուլտիպլեքսեր | Մաուզեր | Պարունակում է չորս 2 մուտքային, 1 ելքային անջատիչներ, որոնք այն մեխանիզմն են, որով SPI ինտերֆեյսի ազդանշանները և կիրառական մուտքային/ելքային ազդանշանները կիսվում են: |
SPST անջատիչ | Անջատիչի ցանկացած տեսակ (վայրկենական կամ կողպված) կաշխատի: Անջատիչը օգտագործվում է հայտի մուտքի համար քորոցների փոխանակումը պատկերելու համար: | |
10K դիմադրություն | Քաշեք ներքևի ռեզիստորը SPST անջատիչի համար `լողացող մուտքից խուսափելու համար |
Multiplexer- ը բանալիներից ներբեռնման օգտագործումը դիմումի օգտագործումից մեկուսացնելու բանալին է: 4x2: 1 մուլտիպլեքսերի ընդհանուր ֆունկցիոնալությունը բավականին պարզ է ՝ բաղկացած 2 կառավարման ազդանշանից և 4 նույնական գործող անջատիչներից: Մուլտիպլեքսերային յուրաքանչյուր քորոցի վարքագիծը քննարկվում է ստորև.
Կապում | Անուն | Գործառույթը |
---|---|---|
15 | Գ | Ինչպես նշված է ճշմարտության աղյուսակում, մուլտիպլեքսերը գործում է միայն այն դեպքում, երբ G միացման քորոցը ցածր է: Քանի որ մենք երբեք չենք ցանկանում ամբողջովին անջատել մուլտիպլեքսերը, 15 -րդ կապը միացված կլինի անմիջապես գետնին: |
2-4; 5-7; 9-11;12-14 | A (մուտքագրում), B (մուտքագրում), Y (ելք) | Կան չորս 2 մուտքագրում; 1-ելքային անջատիչներ `յուրաքանչյուր խմբի 3 կապում համարակալված հաջորդաբար` A (մուտքագրում), B (մուտքագրում), Y (ելք) կարգով, օրինակ. անջատիչի համար 1; կապում 2 = 1A; կապում 3 = 1B; կապում 4 = 1Y |
1 | Ընտրել | Երբ Select- ը ցածր է, անջատիչի մուտքը A միացված է համապատասխան անջատիչի ելքային քորոցին, Y. Երբ ընտրությունը բարձր է, անջատիչի մուտքը B միացված է ելքին: Անջատիչները միաժամանակ վերահսկվում են Select ազդանշանի միջոցով և գործում միանման: |
8 | GND | մուլտիպլեքսոր IC հիմք |
16 | ԵԿԿ | մուլտիպլեքսորային IC հզորություն |
Քայլ 2. Փորձարկման դեպքերի ակնարկ
Քորոցների վերաօգտագործման երկու սցենարները հիմնված են այն բանի վրա, թե արդյոք քորոցը հայտի մուտք է, թե ելք: Inputանկացած մուտքի հետ աշխատելու կարգը միշտ նույնն է. նաև կիրառման ելքերի ընթացակարգը նույնական է ՝ անկախ ապարատային բաղադրիչից: Նույնիսկ այդպես, բացատրությունն ավելի հեշտ է, և հուսով եմ ՝ ավելի պարզ, եթե կոնկրետ օրինակներ բերվեն: Երկու դեպքերի համար մինիմալիստական դասավորությունները ներկայացված են վերևում: Մանրամասն կարգավորումների համար հետագայում կապերը մի փոքր սկյուռների բույն են դառնում, ուստի օգտակար կլինի վերադառնալ այս ավելի մաքուր գծապատկերներին:
RESET- ը կատարյալ ընտրություն է Multiplexer Select ազդանշանի համար, քանի որ ներբեռնման ընթացքում այն ցածր է, բայց ներբեռնումն ավարտելուց հետո բարձր է դառնում: Նկատի ունեցեք, որ մուլտիպլեքսերային անջատիչներից որևէ մեկը կարող է օգտագործվել ցանկացած դեպքում, քանի որ բոլոր անջատիչներն իրենց նույնական են պահում: Բացի այդ, օրինակներից ոչ մեկը «իրատեսական» չէ. դրանք փոխարենը ընտրվել են որպես մեկուսացման տեխնիկան լուսաբանելու ամենապարզ միջոցը
-
Ելքի պատյան. ATtiny84 փին 4 -ից (SCK) LED ելքը մեկուսացված է մուլտիպլեքսերային անջատիչ 2 -ի միջոցով
- միացրեք մուլտիպլեքսեր պին 2A- ն գետնին
- միացրեք մուլտիպլեքսերային քորոց 2B ATtiny85 փին 4 -ին
-
միացրեք ելքը 2Y LED անոդին
-
Ակնկալվող արդյունքներ.
- Ներբեռնման ժամանակ LED- ն անջատված է, քանի որ միացված է 2A, գետնին
- 2B- ի միջոցով ներբեռնելուց հետո LED- ը կցվում է հավելվածի ելքային 4 -ին և սկսում է թարթել
-
-
Մուտքի գործ.
- MOSI հաղորդալարը AVR ծրագրավորողի վերնագրից տեղափոխվում է 3A
- անջատիչ մուտքը 3B միացված է SPST ելքին
-
3Y ելքը միացված է ATtiny84 փին 6 -ին
- 3A, MOSI, ներբեռնման ընթացքում միացված է 6 -րդ կապին
- 3B, SPST ելքը, ներբեռնելուց հետո միացված է 6 -րդ կապին
1 -ին դեպքը հաջող է, եթե LED- ը չի թրթռում ծրագրի ներբեռնման ընթացքում և այնուհետև թարթում է ներբեռնումից երկու վայրկյանը մեկ, ինչպես և սպասվում էր ծրագրի վերահսկողության ներքո: Առանց մեկուսացման LED- ը կթարթվի ներբեռնման ընթացքում, քանի որ այն ուղղակիորեն միացված է SCK ազդանշանին, որը փոխում է ժամացույցի տվյալների ստացման/փոխանցման վիճակը:
2 -րդ դեպքը հաջող է, եթե MOSI ազդանշանը ներբեռնման ընթացքում փոխանցվում է ATtiny84- ին, այսինքն `ներբեռնումը չի ձախողվում, և LED- ն արձագանքում է ներբեռնումից հետո SPST անջատմանը: 2 -րդ դեպքը կանխում է ներբեռնման անհավանական ձախողումը: Առանց մեկուսացման, SPST անջատիչը կարող է խափանում առաջացնել, եթե 1) կողպված անջատիչ է օգտագործվում և 2) անջատիչը բեռնման ընթացքում թողնում է միացված վիճակում: Երբ մուլտիպլեքսորով մեկուսացված է, անջատիչը ոչ մի դեպքում չի կարող առաջացնել ներբեռնման ձախողում: Մի փոքր ձգվող, բայց մխիթարիչ է մեզ ՝ ծերերիս համար:
Մուլտիպլեքսեր օգտագործելու հետևանքներից մեկն այն է, որ ապարատային բաղադրիչն այլևս չի կարող ուղղակիորեն միացվել միկրոկառավարիչի I/O քորոցին: Սա որոշ չափով անհարմար է, բայց թույլ է տալիս բաղադրիչը թեստի ընթացքում մնալ մյուս փորձարկման ընթացքում ՝ կիրառման այլ սարքավորումների հետ միասին, և թեստը ավարտելուց հետո կարող է հետ տեղափոխվել իր օրինական վայր:
Քայլ 3. ATtiny84 Case 1 - Մեկուսացնել կիրառման ելքը
Այս քայլը նկարագրում է ներբեռնման ազդանշանի միջոցով ծրագրի ելքային կապի փոխանակման կարգավորումը: Օգտագործված օրինակը 4 -ի (SCK) ամրացված LED- ն է: Որպես օրինակ գոյություն ունեցող LED- ի օգտագործումը թույլ է տալիս շեշտը դնել մուլտիպլեքսեր 1 -ին մասի ապարատային և ծրագրային միջավայրին:
-
Սարքավորումներ
- Մուլտիպլեքսերը ավելացրեք հացաթխման սեղանին ՝ վերևում ցրտաշունչ գծապատկերում նշված հարաբերական վայրում: Մուլտիպլեքսերը տեղադրված է դեպի կենտրոն, որպեսզի հնարավորություն տա 2 -րդ դեպքում անհրաժեշտ SPST անջատիչին:
- Երկարացրեք RESET ազդանշանը մուլտիպլեքսորին `ավելացնելով կապարի մետաղալար (առաջարկեք դեղին) ATtiny84 փին 11 -ից դեպի մուլտիպլեքսերային 1 կապ:
-
Մնացած ապարատային կարգավորումը տրված է Քայլ 2 -ում
- միացրեք մուլտիպլեքսերային քորոց 2A- ն անմիջապես գետնին
- միացրեք 2B կապը ATtiny84 փին 4 -ին
-
միացրեք ելքը 2Y LED անոդին
-
Ակնկալվող արդյունքներ.
- ներբեռնման ընթացքում 2Y միացված է գետնին (2A), այնպես որ LED- ն մնում է անջատված
- Ներբեռնումից հետո 2Y- ն միացված է ATtiny84 փին 4 -ին `կիրառման LED հսկողություն
-
-
Ծրագրային ապահովում
- Մաս 1 -ի ծածկագիրը կրկին օգտագործվում է. հասանելի է 1 -ին մասից, որը ուսանելի է, այլ ոչ թե այստեղ կրկնօրինակված
- Բեռնեք և կազմեք Arduino IDE- ի 1 -ին մասի ծրագիրը
- Միացրեք Փոքր AVR ծրագրավորողին համակարգչի USB պորտին
-
Միացրեք Adafruit USB սերիական մալուխը երկրորդ USB պորտին
- Ստեղծվում է COM նավահանգիստ և ինքնաբերաբար հասանելի է դառնում IDE նավահանգստի ցուցակում
- Գործարկեք COM պատուհանը
- Ներբեռնեք կազմված կոդը ATtiny84- ում
Կիրառական ծրագրի արդյունքները նույնն են, ինչ 1 -ին մասի համար, քանի որ միակ փոփոխությունը LED- ը «պաշտպանված» վայր տեղափոխելն էր. LED- ը թարթում է 2 վայրկյան ընդմիջումներով; սերիական ելքը նույնն է: Մի տարբերություն, որը պետք է առաջանա, այն է, որ LED- ն այլևս չի թարթում ներբեռնման ընթացքում, քանի որ այդ ընթացքում այն միացված է գետնին մուլտիպլեքսեր 2A կապի միջոցով:
Քայլ 4. ATtiny84 Case 2 - Մեկուսացնել հայտի մուտքագրումը
Այս քայլը հիմնված է նախորդ ելքային մեկուսացման գործի կարգավորման վրա: Սարքավորման փոփոխությունները բաղկացած են SPST անջատիչի ATtiny84 pin 6 (MOSI) - ին մուլտիպլեքսերի միջոցով կցելուց: Այսպիսով, ապարատային փոփոխությունները նվազագույն են, բայց կան մի քանի ծրագրային փոփոխություններ, որոնք թույլ են տալիս SPST անջատիչին վերահսկել LED- ն ՝ օգտագործելով կապում փոփոխության ընդհատումը: Թարմացված ծածկագիրը ներառված է այս բաժնի ներքևում: Կոդը պետք է պատճենվի Arduino IDE- ում; առաջարկեք պահպանել այն Multiplexer_Input անվան տակ: (Ներողություն եմ խնդրում այս բաժնի երկարության համար, բայց դա ուսանելի ուսուցման նպատակը է և կարծում եմ, որ այն ավելի լավ է ընթերցվում որպես մոնոլիտ, քան արհեստական ընդմիջումներ տեղադրելու):
Թարմացնել | Գտնվելու վայրը | Նպատակը |
---|---|---|
ներառել «կոտրված» SoftwareSerial դասը | ներառել բաժինը | LED- ն այժմ վերահսկվում է SPST անջատիչով `քորոցային փոփոխության ընդհատման միջոցով: SoftwareSerial դասը պետք է փոփոխվի, քանի որ հակառակ դեպքում այն հատկացնում է քորոց փոփոխության ԲՈԼՈՐ վեկտորները: Սա առաջացնում է «բազմակի սահմանում» հղման սխալ SPST անջատիչին վերագրված (նավահանգիստ 0) վեկտորի համար: Hackարդված SoftwareSerial տարբերակը պետք է տեղադրվի ծրագրի նույն գրացուցակում, որպեսզի այն ազդի միայն այս հավելվածի վրա: |
SPST մուտքագրման քորոցի սահմանում | ներառել/սահմանման բաժինը | SPST մուտքի նշանակումը սարքի քորոցին: Քորոցը սարքի համար է, ուստի այն ավելացվում է #ifdef ATtiny8x բաժնին (ներ) ին: |
SPST մուտքագրման քորոց ռեժիմ | կարգաբերման գործառույթ | SPST կապը կազմաձևված է որպես Մուտք |
Կարգավորեք SPST կապի ընդհատումը | կարգաբերման գործառույթ | Ընդհատման վեկտորը նշանակվում է SPST մուտքագրման քորոցին, որպեսզի անջատիչի վիճակի փոփոխությունը առաջացնի ընդհատում: Կազմաձևման գրանցամատյանները և ընդհատումների տեսակը հատուկ են սարքին: Կոդը հնարավորինս պարզ դարձնելու համար տարբերությունները կարգավորվում են #եթե սահմանված հատվածում |
Կարգավորեք ամբողջական սերիական հաղորդագրությունը | կարգաբերման գործառույթ | Տեղադրման ամբողջական սերիական ելքային հաղորդագրությունը փոխվում է ՝ արտացոլելու Multiplexer Input ծրագիրը |
Ավելացնել SPST անջատիչ ISR գործառույթը | ծածկագրի բաժին | Ավելացվում է SPST կապի փոփոխման ընդհատման ISR- ն: Կոդը սովորական է, բայց օգտագործվող վեկտորը հատուկ սարքի համար է և սահմանվում է ծրագրի վերևում գտնվող սարքից կախված բաժիններում: ISR- ի ակտիվացման ստուգման համար լուսադիոդային վիճակը փոխվում է: Չնայած իրական ծրագրում ոչ-ոչ, սերիական ելքային հաղորդագրություն է ստեղծվում `արտացոլելով LED- ի նոր վիճակը: |
Փոփոխել հանգույցի մշակումը | հանգույցի գործառույթը | ISR- ն այժմ վերահսկում է LED- ը միացնելը և անջատելը, որպեսզի ֆունկցիոնալությունը հանվի օղակի ռեժիմից: Քնի ռեժիմին կանչելը ATtiny84- ի համար ավելացվում է որպես «լրացուցիչ»: Այս հավելվածի համար ATtiny85 քունը չի աշխատում; գուցե Software Serial դասի միջամտության պատճառով, քանի որ այն աշխատում է SoftwareSerial- ի հետ, հանված է: |
Ավելացրեք քնի ռեժիմ | ծածկագրի բաժին | Քնի ֆունկցիոնալությունը անհրաժեշտ չէ մուլտիպլեքսերի օգտագործումը ցուցադրելու համար: Պարզապես ավելացվել է, քանի որ սովորաբար կցանկանայի սպասել POWER_DOWN ռեժիմում մուտքագրմանը ՝ էներգիա խնայելու համար, այլ ոչ թե շարունակել աշխատել ծրագրի օղակով ՝ ոչինչ չանելով, մինչև մուտքը տեղի ունենա: |
Փոփոխեք SoftwareSerial դասի ծածկագիրը
SoftwareSerial դասը պետք է փոխվի այնպես, որ այն չփակի բոլոր կապի փոփոխման ընդհատման նավահանգիստները: SoftwareSerial դասի ծածկագիրը գտնվում է ՝
C: / Program Files (x86) Arduino / hardware / arduino / avr / libraries / SoftwareSerial / src
Գտեք PCINT0_vect- ում SoftwareSerial.cpp- ում ՝ կոդի փոփոխությունների մեկնարկի վայրը գտնելու համար: Ավելացրեք հետևյալ կոդը ՝ գոյություն ունեցող #if սահմանված (PCINT0_vect) հայտարարությանը անմիջապես նախորդող:
#եթե սահմանված է (_ AVR_ATtiny84_)
#սահմանել MYPORT PCINT1_vect #elif սահմանված (_ AVR_ATtiny85_) #սահմանել MYPORT PCINT0_vect #endif ISR (MYPORT) {SoftwareSerial:: handle_inruptrupt (); }
Այժմ մեկնաբանեք գոյություն ունեցող կոդի բլոկը, որը հատկացնում է նավահանգստի ընդհատման վեկտորները, ինչպես նշված է ստորև (պարզապես ավելացրեք սկզբի և վերջի բլոկի մեկնաբանության նշանները / * և * /):
/*
#if սահմանված (PCINT0_vect) ISR (PCINT0_vect) {SoftwareSerial:: handle_inruptrupt (); } #endif #if սահմանված (PCINT1_vect) ISR (PCINT1_vect) {// SoftwareSerial:: handle_interrupt (); ISR (PCINT1_vect, ISR_ALIASOF (PCINT0_vect)); } #endif #եթե սահմանված է (PCINT2_vect) ISR (PCINT2_vect, ISR_ALIASOF (PCINT0_vect)); #endif #եթե սահմանված է (PCINT3_vect) ISR (PCINT3_vect, ISR_ALIASOF (PCINT0_vect)); #endif */
Կարգավորեք սարքավորումները
SPST անջատիչը կցված է ATtiny84 փին 6 -ին (MOSI), ինչպես նկարագրված է Քայլ 2 -ում: Հարմարության համար ընթացակարգը կրկնօրինակվում է այստեղ:
- միացրեք անջատիչի մուտքը 3A Tiny AVR Programmer վերնագրի MOSI կապարին
- միացրեք 3B- ն SPST անջատիչ ON ելքային քորոցին
-
միացրեք 3Y- ը ATtiny84 փին 6 -ին
-
ԱՐԴՅՈՆՔՆԵՐ:
- 3A, MOSI, ներբեռնման ընթացքում կապակցված կլինի ATtiny84 փին 6 -ի հետ
- 3B, SPST արտադրանքը, ներբեռնելուց հետո կդառնա 6 -րդ կապի
-
Գործարկեք ծրագիրը
Վազելուց առաջ SPST անջատիչը դրեք անջատված վիճակում: Հակառակ դեպքում LED- ը կմիանա, երբ անջատիչն անջատված է և հակառակը: Հետևեք 3 -րդ քայլին ՝ Arduino IDE- ի միջոցով դիմումի ներմուծման ծրագիրը բեռնելու, կազմելու և ներբեռնելու համար: Ինչպես նախկինում, ներբեռնման ընթացքում LED- ը չպետք է թարթվի, այնպես որ ծրագիրը գործարկելու միակ ցուցիչը կլինի կարգաբերման ռեժիմի վերջում սերիական հաղորդագրությունը ՝ SETUP Complete - Input Օրինակ
Այս պահին ծրագիրը սպասում է մուտքագրման SPST անջատիչից: Անջատիչը ON դիրքում տեղադրելը կհանգեցնի LED- ի միացմանը. վերադառնալով անջատված դիրքի ՝ LED- ն անջատվում է: Ելքային հաղորդագրությունները հաստատում են, որ ISR- ն կանչվել է (ISR: Led HIGH, ISR: Led LOW): Ուշադրություն դարձրեք, որ սերիական հաղորդագրությունների հերթականությունը հետևյալն է. անջատիչ մուտքագրելիս ISR- ն կանչվում է, միացնում LED- ն և փաստաթղթավորում փոփոխությունը. ապա վերամշակումը սկսվում է քնի կանչից հետո, քանի որ ընդհատումը արթնացնում է պրոցեսորը:
Այս հրահանգի ծրագիրը
//************************************************************************
// ՄԱՍ 2. Դիմում/ներբեռնեք սարքի քորոցների փոխանակում //: Փոփոխում է Մաս 1 -ի ծածկագիրը ՝ աջակցելու քորոցների // SPI ծրագրավորման ինտերֆեյսի համար //. «Comon» ծածկագիրը ATtiny85 և ATtiny84 // *************************************** ***************************** # #ներառել «SoftwareSerial.h» // Փոփոխված Arduino SoftwareSerial դասը #ներառել // Մինչ մշակման ծածկագիրը տարածված է, օգտագործվող կապումներն #հատուկ սարքի համար #սահմանված են (_ AVR_ATtiny84_) || սահմանված (_ AVR_ATtiny84A_) #սահմանել ledPin 4 // Միացված/անջատելու համար անջատված/անջատված #սահմանել rxPin 9 // Սերիական ընդունման համար օգտագործվող քորոց (MOSI) #սահմանել ISR_VECT PCINT0_vect // SPST անջատիչ Pin փոփոխության ընդհատման վեկտոր #elif սահմանված (_ AVR_ATtiny85_) #սահմանել ledPin 1 #սահմանել rxPin 4 #սահմանել txPin 3 #սահմանել SpstPin 2 // Մուտք SPST_TECT (INT0_ctfine) // SPST անջատիչ Փին փոխելու ընդհատման վեկտորը #այլ #սխալ Միայն այս նախագծին է աջակցում ATiny84- ը և ATtiny85- ը:, txPin); // ---------------------------------------------------- ------------------------ // Մշակման ռեսուրսների սկզբնականացում // ------------------- ------------------------------------------------------ --- void setup () {mySerial.begin (9600); // Սկսեք սերիական մշակման հետաձգում (2000); // ialամանակ տվեք Serial Com պորտին ՝ գործարկումը ավարտելու համար: // հակառակ դեպքում, 1 -ին ելքը, ամենայն հավանականությամբ, բացակայում է կամ փչացած pinMode (ledPin, OUTPUT); // Կարգավորել led քորոցը OUTPUT pinMode- ի համար (SpstPin, INPUT); // Կարգավորել SPST անջատիչի քորոցը որպես INPUT #եթե սահմանված է (_ AVR_ATtiny84_) || (_AVR_ATtiny84A_) // կարգավորել կապի փոփոխման ընդհատում ՝ 6 -րդ կապում (MOSI) GIMSK- ի անջատիչի մուտքը կարգավորելու համար | = (1 <
Քայլ 5. ATtiny85 Case 1 - Մեկուսացնել կիրառման ելքը
ATtiny85- ի համար կրկնակի ապարատային կարգավորում կառուցելու փոխարեն, հավանաբար, ավելի հեշտ է սկսել քայլ 4 -ից ATtiny84- ի ավարտված կազմաձևով և tiny84 չիպը փոխարինել tiny85- ով: Բոլոր անհրաժեշտ սարքավորումներն այնուհետև արդեն հասանելի են: Եթե օգտագործում եք այս մոտեցումը, տեղադրեք tiny85- ն այնպես, որ 3 -րդ և 4 -րդ կապումներն իրար հաջորդեն tx սերիական մալուխի հետ և ստանան լարեր: Այնուհետև մնում է միայն SPI ինտերֆեյսի հաղորդալարերը տեղափոխել ՝ համապատասխանելու ATtiny85- ի իրենց պահանջվող վայրերին:
Եթե զրոյից եք սկսում, պարզապես հետևեք 3 -րդ քայլի ընդհանուր քայլերին և վերը նշված ցնցող գծապատկերին: 3 -րդ քայլում ATtiny84- ի համար օգտագործված ծածկագիրը նույնն է, ինչ ակնկալվող արդյունքները. LED- ն աշխատելիս թարթում է 2 վայրկյան ընդմիջումներով, իսկ հաջորդական ելքային հաղորդագրությունները հետևում են LED վիճակին:
Քայլ 6. ATtiny85 Case 2 - Մեկուսացնել հայտի մուտքագրումը
Սարքավորումների տեղադրման համար սկսեք 5 -րդ քայլից կազմաձևումից և ավելացրեք SPST անջատիչը, ինչպես նշված է վերևում ցրտաշունչ դիագրամում: Ես իրականում օգտագործել եմ մի փոքր անջատիչ ՝ tiny85 տարբերակի համար, և դա մի փոքր ավելի հեշտ է դարձնում ստուգումը: Ուշադրություն դարձրեք, որ անջատիչի ելքը պտտվում է ATtiny84 կոնֆիգուրացիայից 180 աստիճանով: Այս փոփոխությունը հեշտացնում է միացման լարերի ուղղորդումը, քանի որ բոլոր 3 SPI ազդանշանները ATtiny85- ի համար միևնույն կողմում են:
Օգտագործեք նույն ծրագիրը, ինչպես ATtiny84 Քայլ 4. Սպասվում են նույն ընդհանուր արդյունքները. LED- ն փոխում է վիճակը, երբ SPST անջատիչը միացված/անջատված է, իսկ հաջորդական ելքային հաղորդագրությունները փաստաթղթավորում են փոփոխությունները: GO TO SLEEP- ի հաղորդագրությունները բացակայում են, քանի որ ATtiny85- ի համար քնի գործառույթը չի կիրառվում: Թեև նույն ծրագիրն է օգտագործվում, իրականացման մեջ կան էական տարբերություններ `հաշվի առնելու այն փաստը, որ ATtiny85- ն ունի միայն մեկ նավահանգստի գրանցամատյան (նավահանգիստ 0):
- SoftwareSerial- ն այժմ սերիական հաղորդակցության համար հատկացնում է պորտի 0 կապի փոփոխության ընդհատումը (Հիշեցնենք, որ մենք կարողացանք օգտագործել 1 պորտը ATtiny84- ի համար):
- SPST անջատիչի ընդհատումը պետք է իրականացվի արտաքին ընդհատմամբ 0 (INT0), քանի որ մեկ և միայն քորոց փոփոխության ընդհատումը հատկացված է SoftwareSerial- ի կողմից: Սա իսկապես ցույց է տալիս այն կետը, որ քորոցների փոփոխման ընդհատումները և արտաքին ընդհատումները տրամաբանորեն անկախ են և կարող են օգտագործվել նույն պորտ գրանցամատյանում:
- Փոփոխված SoftwareSerial տարբերակի օգտագործմամբ ոչինչ չի շահվում. Կա միայն մեկ նավահանգիստ, և SoftwareSerial դասը կգրավի այն: Այնուամենայնիվ, փոփոխված դասը դեռ օգտագործվում էր պարզապես այս քայլի նպատակի հետ անմիջականորեն առնչվող փոփոխությունից խուսափելու համար:
Խորհուրդ ենք տալիս:
ICSP միակցիչ Arduino Nano- ի համար առանց զոդված քորոցի վերնագրի, բայց Pogo կապի: 7 քայլ
ICSP միակցիչ Arduino Nano- ի համար առանց զոդված քորոցի, բայց Pogo կապի համար. Կատարեք ICSP միակցիչ Arduino Nano- ի համար `առանց տախտակի վրա զոդված կապի վերնագրի, բայց Pogo Pin- ի: Մասեր 3 × 2 Pin Socket x1 - APitch 2.54mm Dupont Line Wire Female Pin Connector Housing Terminals x6 -BP75-E2 (1.3 մմ կոնաձև գլուխ) գարնանային փորձանմուշ Pogo Pin
Հողի խոնավության հետադարձ կապի միջոցով ինտերնետով միացված կաթիլային ոռոգման համակարգ (ESP32 և Բլինք). 5 քայլ
Հողի խոնավության հետադարձ կապի միջոցով վերահսկվող ինտերնետով միացված կաթիլային ոռոգման համակարգ (ESP32 և Blynk). Անհանգստացեք ձեր այգու կամ բույսերի մասին, երբ երկարատև արձակուրդ եք գնում, կամ մոռացեք ամեն օր ջրել ձեր բույսը: Դե, ահա լուծումը դա հողի խոնավության վերահսկմամբ և գլոբալ կերպով կապված կաթիլային ոռոգման համակարգ է, որը վերահսկվում է ESP32- ով `ծրագրաշարի առջևում
Esp8266 հիմնված խթանող փոխարկիչ ՝ զարմանալի Blynk UI- ով հետադարձ կապի կարգավորիչով. 6 քայլ
Esp8266- ի վրա հիմնված խթանող փոխարկիչ `զարմանալի Blynk UI- ով հետադարձ կապի կարգավորիչով. Այս նախագծում ես ձեզ ցույց կտամ արդյունավետ և սովորական միջոց, թե ինչպես բարձրացնել DC լարման հոսքերը: Ես ձեզ ցույց կտամ, թե որքան հեշտ կարող է լինել Nodemcu- ի օգնությամբ խթանման փոխարկիչ կառուցելը: Եկեք կառուցենք այն: Այն ներառում է նաև էկրանի վոլտմետր և հետադարձ կապ
Հետադարձ կապի հավաքման համակարգ `4 քայլ
Հետադարձ կապի հավաքման համակարգ. Միշտ հետաքրքիր է հետադարձ իրադարձություններից և սեմինարներից հետադարձ կապ հավաքելը: Այդ խնդիրը լուծելու համար մենք պատրաստել ենք arduino- ի վրա հիմնված հետադարձ կապի հավաքման համակարգ: Այս նախագծում մենք պատրաստելու ենք էլեկտրոնային սարք, որը կհավաքի հետադարձ կապ ՝ սեղմված կոճակի համաձայն
DWMM0 Բջջային կապի միջնահարկ. 3 քայլ
DWMM0 Mobile Connectivity Mezzanine. Սա պարզ ցուցադրում է DWMM0 միջնահարկի օգտագործման տվյալների հեռավոր գրանցման համար: Այս հավելվածի հաճախորդի կողմը վարում է Python սցենար (client.py), որը պատասխանատու է GNSS/GPS տվյալների ընթերցման և սերվերին փոխանցելու համար: (TCP/IP pr