2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
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
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ė 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
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
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ą.