Բովանդակություն:

Երկու OOBoards- ի միացում I2C- ի միջոցով `4 քայլ
Երկու OOBoards- ի միացում I2C- ի միջոցով `4 քայլ

Video: Երկու OOBoards- ի միացում I2C- ի միջոցով `4 քայլ

Video: Երկու OOBoards- ի միացում I2C- ի միջոցով `4 քայլ
Video: #5 FLProg անալոգային մուտք I2C LCD-ի վրա | ESP32 NodeMCU | Arduino Visual Embedded Programming 2024, Նոյեմբեր
Anonim
Երկու OOBoards- ի համատեղ միացում I2C- ի միջոցով
Երկու OOBoards- ի համատեղ միացում I2C- ի միջոցով

Այս հրահանգը ներառում է, թե ինչպես միացնել երկու OOBoards ՝ օգտագործելով I2C:

Քայլ 1. Միացում I2C ցանցի ավտոբուսին

Միացում I2C ցանցի ավտոբուսին
Միացում I2C ցանցի ավտոբուսին
Միացում I2C ցանցի ավտոբուսին
Միացում I2C ցանցի ավտոբուսին

OOBoards- ում կա երկու I2C ավտոբուս, տեղական ավտոբուս և ցանցային ավտոբուս:

OOPIC ծածկագիրը, ըստ էության, մեկնաբանված լեզու է, այսինքն ՝ «ծածկագիրը» պահվում է EEPROM- ում, իսկ միկրոպրոցեսորը կարդում/մեկնաբանում է իրական ժամանակում: EEPROM- ը օգտագործում է LOCAL I2C ավտոբուսը միկրոկոնտրոլերի հետ հաղորդակցվելու համար: Եթե դուք նայեիք այս տեղական ավտոբուսին տատանումների վրա, ապա կտեսնեիք անընդհատ շշուկներ: OOBoards տախտակների վրա տեղական ավտոբուսն այն է, ինչ միացված է I2C միակցիչին, սա պարտադիր չէ, որ մենք ուզում ենք: NETWORK ավտոբուսը սովորաբար այն ավտոբուսն է, որն օգտագործվում է այլ սարքերի հետ շփվելու համար: OOBoards- ում այս ավտոբուսը միակցիչ չունի: Այս ավտոբուս մուտք գործելու համար դուք պետք է լարեր միացնեք միկրոկառավարիչի 42 և 37 կապումներին (սխեմայում համապատասխանաբար նշված են N_SDA, N_SCL):

Քայլ 2: Ավելացրեք քաշման դիմադրիչներ

Երբ SDA և SCL կապեր են ստեղծվում յուրաքանչյուր պրոցեսորի վրա, երկու տախտակները կարող են

միմյանց միացնել ՝ SDA- ն SDA- ին, SCL- ն SCL- ին միացնելով և տախտակների միջև միացնելով ընդհանուր հողալարեր: Ձեզ նույնպես կպահանջվի քաշման դիմադրություն յուրաքանչյուր տողում (ես օգտագործել եմ 12k, բայց դա հենց այն է, ինչ ունեի մոտ): Նկատի ունեցեք, որ ընդամենը մեկ դիմագծի համար անհրաժեշտ է մեկ ձգման դիմադրություն `ընդհանուր երկու դիմադրության համար (ոչ 4):

Քայլ 3. Programրագրեք ստրուկին

Այժմ, երբ ֆիզիկական կապերը կան, ձեզ հարկավոր է ծրագրավորել ստրուկի միկրոկառավարիչը: Ստորև ավելացրել եմ մի քանի կոդ, որոնք պետք է սկսեն ձեզ:

Dim SLAVE As New oDDELinkDim LED Որպես նոր oDIO1Sub Main () և մեր I2C հասցեն հասցեագրեք 2 -ին (նշեք, որ այն պետք է համապատասխանի հեռակառավարման հասցեին, որը մենք սահմանել ենք գլխավոր ծածկագրում) = cvOutput & aposnow, կապեք մեր DDELink օբյեկտի ելքը & LED- ի հետ և միացրեք այն … այժմ ավտոմատ կերպով LED- ը կթարթվի SLAVE. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub

Քայլ 4. Programրագրեք վարպետին

Վերջապես, ծրագրավորեք գլխավոր միկրոկառավարիչը: Ուշադիր ուշադրություն դարձրեք DDELink- ի. Location հատկությունը սահմանող տողերին.

Dim Master As New oDDELinkDim մետաղալար ՝ որպես նոր oWireDim hz1 Որպես նոր oBitSub Main () և 1 վայրկյան ժմչփը միացրեք այն փոքր չափին, որին մենք կարող ենք մուտք գործել, և այս բիթը այժմ կփոխվի մեկ երկրորդ լարի մեկ անգամ: Մուտք: Հղում (ooPIC. Hz1) մետաղալար: Ելք: Հղում (hz1) մետաղալար: Գործարկեք = cvTee & aposthis- ը սահմանում է մեր տեղական միկրոկառավարիչի I2C հասցեն և aposthe I2C ինտերֆեյսը ակտիվ չէ մինչև հասցեի տեղադրումը ooPIC: Հանգույց = 1 և aposnow մենք կարգավորում ենք մեր DDELink օբյեկտը, մեր մուտքը բիթ hz1 է և ենթադրում է, որ օբյեկտը նաև ունի. Master. Node = 2 & aposugh… սա այն խայտառակ մասն է, սա DDELink & aposobject- ի «հասցեն» է ստրուկի և aposs հիշողության տարածության մեջ: Այս թիվը պարզելու համար անհրաժեշտ է բացել և կազմել ստրուկի կոդը, այնուհետև անցնել View-> Compiled Code: & aposlook նման բանի համար ՝ Անմիջապես ներքևի տողում պետք է կարդալ հետևյալը. & AposC0020: 041; Սա … տվյալներ (այսինքն ՝ պատճենել տվյալները մեր. Մուտքի սեփականություն և առաքյալներ ստրուկներին.. ելքային հատկություն (նկատի ունեցեք, եթե դա սահմանել եք ստանալու համար, հակառակն է) Master. Direction = cv Ուղարկել և միացնել այն, բայց դեռ ոչինչ չի կատարվում… Վարպետ. Գործարկել = cvTrue Do & aposcheck ՝ տեսնելու համար, թե արդյոք տվյալ պահին մենք փոխանցում ենք տվյալներ: = 1 Վերջ, եթե LoopEnd ենթ

Խորհուրդ ենք տալիս: