Turinys:

„Arduino I2C Sniffer“: 4 žingsniai
„Arduino I2C Sniffer“: 4 žingsniai

Video: „Arduino I2C Sniffer“: 4 žingsniai

Video: „Arduino I2C Sniffer“: 4 žingsniai
Video: How I2C Communication Works and How To Use It with Arduino 2024, Lapkritis
Anonim
„Arduino I2C Sniffer“
„Arduino I2C Sniffer“

I2C yra nuoseklusis protokolas, naudojamas bendrauti su mikrovaldikliu su išoriniais periferiniais įrenginiais, prijungtais prie tos pačios grandinės. Kiekvienas periferinis įrenginys turi turėti unikalų ID numerį, vadinamą adresu, kuris naudojamas identifikuoti jį kaip numatytą tam tikro pranešimo gavėją. Šiuos adresus priskiria įrenginio gamintojas ir dažniausiai jų pakeisti negalima. Šnipas nuskaito visus galimus adresus, ieškodamas prijungtų įrenginių, ir praneša apie rastus. Tai padeda atpažinti nepažymėtas mikroschemas, nes tada adresą galima rasti „Google“, kad gautumėte daugiau informacijos apie lustą.

Šis įrenginys „Arduino UNO“imituoja „Raspberry Pi i2cdetect“scenarijaus elgesį, užuodžia visus galimus „i2c“adresus, ieškodamas prijungtų įrenginių, ir gražiai spausdina rezultatus 16x02 LCD ekrane.

Kad ekrane tilptų viskas, aukščiausia ir žemiausia adreso dalys yra atspausdintos virš rezultatų, o didžioji dalis yra paryškintu šriftu. Du mygtukai leidžia naršyti tarp adresų, vienu metu rodant 16 adresų. Jei aptinkamas įrenginys, W bus atspausdintas, kad būtų rodomas kaip rašymo adresas, o R būtų rodomas, jei tai skaitymo adresas. Jei tuo adresu nieko neaptinkama, ekrane bus rodomas brūkšnelis (-).

1 žingsnis: medžiagos

Medžiagos
Medžiagos
Medžiagos
Medžiagos

1 variantas

1 x „Arduino UNO“

1 x 16x02 LCD ekranas

1x 10K potenciometras

1x 330 omų rezistorius

3x mygtukai

Trumpieji kabeliai

1x I2C lygio perjungiklis (ne ant medžiagos paveikslėlio)

2 variantas

1 x „Arduino UNO“

LCD klaviatūros skydas (skydo mygtukai nebus naudojami)

3x mygtukai

Trumpieji kabeliai

1x I2C lygio perjungiklis (ne ant medžiagos paveikslėlio)

2 variantas yra tas, kuris bus sukurtas, nes šiuo metu tai turėjau po ranka. Lygio perjungiklis yra svarbi grandinės dalis, nes šiais laikais dauguma įrenginių naudoja 3,3 V logiką, o 5 V iš „Arduino“juos sugadina.

(Nuotraukose perbraukta medžiaga nereikalinga.)

2 žingsnis: grandinė

Grandinė
Grandinė
Grandinė
Grandinė
Grandinė
Grandinė

Grandinė yra gana tiesi, naudojant standartinį „Arduino“pavyzdžių skystųjų kristalų skylę, numatytuosius kaiščius I2C ir 3 atsarginius kaiščius mygtukams.

Jei naudojate skystųjų kristalų klaviatūros skydą, LCD rodmuo pasikeičia, tačiau tai jau įtraukta į kodą. LCD klaviatūros skydo mygtukai nenaudojami, nes jiems reikalingas analoginis apklausos metodas, kuris nutraukia dviejų galimų diegimo grandinių suderinamumą (ekranas ir atskiras LCD)

3 žingsnis: kodas

Kodas
Kodas

Jei naudojamas LCD klaviatūros skydas, #define LCD_SHIELD eskizo pradžioje turi būti paliktas nekomentuojamas. Priešingu atveju pakomentuokite jį, kad galėtumėte naudoti pirmąją diagramą.

4 žingsnis: Išvados

Išvados
Išvados
Išvados
Išvados
Išvados
Išvados

Norėdami patikrinti kodą ir grandinę, buvo naudojamas BQ32000 RTC lustas ir MMA8452Q akselerometras. Kaip matyti iš paveikslėlių, įrenginys aptinka 4 adresus: 0x3A ir 0xD0 kaip rašymo adresus ir 0x3B ir 0xD1 kaip skaitymo adresus. Šie adresai atitinka bandymo įrenginius, todėl kodas veikia.

Norėčiau padėkoti tokioms merginoms iš „Beijing Makerspace“, Fu Yao ir Liu Xin, kurios padėjo man gauti medžiagą, reikalingą šiam projektui išbandyti per tokį trumpą laiką.

Rekomenduojamas: