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

Arduino I2C Sniffer: 4 քայլ
Arduino I2C Sniffer: 4 քայլ

Video: Arduino I2C Sniffer: 4 քայլ

Video: Arduino I2C Sniffer: 4 քայլ
Video: How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16x2 LCD I2C Tutorial 2024, Հուլիսի
Anonim
Arduino I2C Sniffer
Arduino I2C Sniffer

I2C- ը սերիական արձանագրություն է, որն օգտագործվում է միկրոկոնտրոլերին միացման միացման համար արտաքին ծայրամասային սարքերի հետ: Յուրաքանչյուր ծայրամասային սարք պետք է ունենա եզակի ID համար, որը կոչվում է հասցե և օգտագործվում է այն որպես տվյալ հաղորդագրության նպատակային ստացողը նույնականացնելու համար: Այդ հասցեները նշանակվում են սարքի արտադրողի կողմից, և շատ դեպքերում դրանք հնարավոր չէ փոխել: Դիպուկահարը սկանավորում է հնարավոր բոլոր հասցեները ՝ փնտրելով միացված սարքեր և հայտնում այն գտածների մասին: Սա օգնում է բացահայտել չնշված չիպերը, քանի որ այդ դեպքում հասցեն կարող է գուգլացվել չիպի վերաբերյալ լրացուցիչ տեղեկությունների համար:

Այս սարքը Arduino UNO- ի վրա ընդօրինակում է Raspberry Pi i2cdetect սցենարի վարքագիծը ՝ հոտոտելով բոլոր հնարավոր i2c հասցեները ՝ միացված սարքեր փնտրելով և արդյունքները գեղեցիկ տպելով 16x02 LCD էկրանին:

Էկրանի վրա ամեն ինչ տեղավորելու համար հասցեի և՛ բարձր, և՛ ցածր հատվածները տպված են արդյունքների վերևում, իսկ բարձր մասը ՝ համարձակ տառատեսակի վրա: Երկու կոճակ թույլ է տալիս նավարկել հասցեների միջև ՝ միաժամանակ ցուցադրելով 16 հասցե: Սարքի հայտնաբերման դեպքում W- ը տպագրվելու է ՝ որպես գրելու հասցե, իսկ R- ը ՝ կարդալու հասցե լինելու դեպքում: Եթե այդ հասցեում ոչինչ չբացահայտվի, գծիկ (-) կցուցադրվի էկրանին:

Քայլ 1: Նյութեր

Նյութեր
Նյութեր
Նյութեր
Նյութեր

Տարբերակ 1

1 x Arduino UNO

1 x 16x02 LCD էկրան

1x 10K պոտենցիոմետր

1x 330 ohm դիմադրություն

3x կոճակներ

Թռիչքային մալուխներ

1x I2C մակարդակի փոխարկիչ (ոչ նյութերի նկարի վրա)

Տարբերակ 2

1 x Arduino UNO

LCD ստեղնաշարի վահան (վահանի կոճակները չեն օգտագործվի)

3x կոճակներ

Թռիչքային մալուխներ

1x I2C մակարդակի փոխարկիչ (ոչ նյութերի նկարի վրա)

Տարբերակ 2 -ն այն է, որը կկառուցվի, քանի որ դա այն է, ինչ ես ունեի այս պահին: Մակարդակի փոփոխիչը շղթայի կարևոր մասն է, քանի որ մեր օրերում սարքերի մեծ մասն օգտագործում է 3.3 Վ տրամաբանություն, իսկ Arduino- ի 5V- ն վնասում է դրանք:

(Նկարների վրա խաչված նյութը պարտադիր չէ):

Քայլ 2: Շղթա

Շրջան
Շրջան
Շրջան
Շրջան
Շրջան
Շրջան

Շղթան բավականին ուղիղ առաջ է, օգտագործելով ստանդարտ pinout- ը Arduino- ի օրինակների համար LCD- ի համար, I2C- ի կանխադրված կապերը և սեղմման կոճակների համար `3 պահեստային կապում:

Այն դեպքում, երբ դուք օգտագործում եք LCD ստեղնաշարի վահանը, LCD- ի համար pinout- ը փոխվում է, բայց դա արդեն համարվում է ծածկագրում: LCD ստեղնաշարի վահանի կոճակները չեն օգտագործվում, քանի որ դրանք պահանջում են հարցման անալոգային մեթոդ, որը խախտում է համատեղելիության երկու հնարավոր սխեմաների միջև համատեղելիությունը (Shield և stand LCD)

Քայլ 3: Կոդ

Կոդ
Կոդ

LCD ստեղնաշարի վահանի օգտագործման դեպքում, #decine LCD_SHIELD- ը էսքիզի սկզբում պետք է թողնել առանց մեկնաբանության: Հակառակ դեպքում, մեկնաբանեք այն, որպեսզի օգտագործեք առաջին դիագրամը:

Քայլ 4: Եզրակացություններ

Եզրակացություններ
Եզրակացություններ
Եզրակացություններ
Եզրակացություններ
Եզրակացություններ
Եզրակացություններ

Կոդի և սխեմայի փորձարկման համար օգտագործվել են BQ32000 RTC չիպը և MMA8452Q արագացուցիչը: Ինչպես երևում է նկարներում, սարքը հայտնաբերում է 4 հասցե ՝ 0x3A և 0xD0 ՝ որպես գրելու հասցեներ, և 0x3B և 0xD1 ՝ որպես ընթերցված հասցեներ: Այս հասցեները համապատասխանում են փորձարկման սարքերին, այնպես որ կոդը աշխատում է:

Ես կցանկանայի շնորհակալություն հայտնել Պեկինի Makerspace- ի բարի աղջիկներին ՝ Ֆու Յաոյին և Լյու Սինին, որոնք օգնեցին ինձ ձեռք բերել նյութեր, որոնք անհրաժեշտ են այս նախագիծը փորձարկելու համար կարճ ժամանակում:

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