2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
I2C je serijski protokol koji se koristi za komunikaciju mikrokontrolera sa vanjskim perifernim uređajima spojenim na isto kolo. Svaki periferni uređaj mora imati jedinstveni ID broj koji se naziva adresa i koji se koristi za identifikaciju kao predviđenog primatelja date poruke. Te adrese dodjeljuje proizvođač uređaja i najčešće se ne mogu promijeniti. Njuškač skenira sve moguće adrese tražeći povezane uređaje i prijavljuje one koje pronađe. Ovo pomaže u identifikaciji neoznačenih čipova jer se tada adresa može tehnički proguglati za više informacija o čipu.
Ovaj uređaj na Arduinu UNO oponaša ponašanje Raspberry Pi i2cdetect skripte, njuši sve moguće i2c adrese u potrazi za povezanim uređajima i lijepo ispisuje rezultate na LCD ekranu veličine 16x02.
Kako bi stalo na ekran, visoki i niski dijelovi adrese ispisuju se iznad rezultata, a visoki dio je podebljano. Dva tastera omogućavaju navigaciju između adresa, prikazujući istovremeno 16 adresa. U slučaju da je uređaj otkriven, W će se ispisati kako bi se prikazao kao adresa za pisanje, a R bi se prikazao u slučaju da je to adresa za čitanje. U slučaju da se ništa ne otkrije na toj adresi, crtica (-) će se prikazati na ekranu.
Korak 1: Materijali
Opcija 1
1 x Arduino UNO
1 x 16x02 LCD ekran
1x 10K potenciometar
1x otpornik od 330 ohma
3x dugmad
Premosni kablovi
1x menjač nivoa I2C (nije na slici materijala)
Opcija 2
1 x Arduino UNO
Štitnik LCD tastature (dugmad na štitu se neće koristiti)
3x dugmad
Premosni kablovi
1x menjač nivoa I2C (nije na slici materijala)
Opcija 2 će biti izgrađena jer je to ono što sam trenutno imao pri ruci. Mjenjač nivoa je važan dio kola jer danas većina uređaja koristi logiku od 3,3 V, a 5V iz Arduina ih oštećuje.
(Na slikama precrtani materijal nije potreban.)
Korak 2: Krug
Krug je prilično jednostavan, koristi standardni pinout za Arduino primjere za LCD, zadane pinove za I2C i 3 rezervne pinove za tipke.
U slučaju da koristite štitnik LCD tastature, pinout za LCD se mijenja, ali to se već razmatra u kodu. Gumbi štitnika LCD tipkovnice ne koriste se jer zahtijevaju analognu metodu prozivanja koja prekida kompatibilnost između dva moguća implementacijska kola (štit i samostalni LCD)
Korak 3: Kodirajte
U slučaju da se koristi štitnik LCD tastature, #define LCD_SHIELD se mora ostaviti bez komentara na početku skice. U suprotnom, komentirajte kako biste koristili prvi dijagram.
Korak 4: Zaključci
Za testiranje koda i kola korišteni su čip BQ32000 RTC i akcelerometar MMA8452Q. Kao što se može vidjeti na slikama, uređaj otkriva 4 adrese: 0x3A i 0xD0 kao adrese za pisanje, te 0x3B i 0xD1 kao pročitane adrese. Ove adrese odgovaraju ispitnim uređajima pa kôd radi.
Želeo bih da se zahvalim ljubaznim devojkama iz Beijing Makerspacea, Fu Yaou i Liu Xin, što su mi pomogle da dobijem materijale potrebne za testiranje ovog projekta u tako kratkom roku.