2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
I2C je serijski protokol koji se koristi za komunikaciju mikrokontrolera s vanjskim perifernim uređajima spojenim na isto kolo. Svaki periferni uređaj mora imati jedinstveni identifikacijski broj nazvan adresa koji se koristi za identifikaciju kao namjeravanog 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. To pomaže u identificiranju 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šeći sve moguće i2c adrese tražeći povezane uređaje i lijepo ispisujući 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 gumba omogućuju 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, na zaslonu će se prikazati crtica (-).
Korak 1: Materijali
opcija 1
1 x Arduino UNO
1 x 16x02 LCD zaslon
1x 10K potenciometar
1x otpornik od 330 ohma
3x tipke
Kratki kabeli
1x mjenjač razine I2C (nije na slici materijala)
Opcija 2
1 x Arduino UNO
Štitnik LCD tipkovnice (gumbi na štitu se neće koristiti)
3x tipke
Kratki kabeli
1x mjenjač razine I2C (nije na slici materijala)
Opcija 2 će biti izgrađena jer je to ono što sam trenutno imao pri ruci. Mjenjač razine važan je dio kruga 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 ravan, 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 tipkovnice, ispis za LCD se mijenja, ali to se već razmatra u kodu. Gumbi štitnika LCD tipkovnice ne koriste se jer zahtijevaju analognu metodu ispitivanja koja prekida kompatibilnost između dva moguća implementacijska kruga (štit i samostalni LCD)
Korak 3: Kodirajte
U slučaju da se koristi štitnik LCD tipkovnice, #define LCD_SHIELD se mora ostaviti bez komentara na početku skice. U protivnom, komentirajte kako biste upotrijebili prvi dijagram.
Korak 4: Zaključci
Za testiranje koda i sklopa korišten je čip BQ32000 RTC i akcelerometar MMA8452Q. Kao što se može vidjeti na slikama, uređaj detektira 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.
Želio bih zahvaliti ljubaznim djevojkama iz Beijing Makerspacea, Fu Yaou i Liu Xin, što su mi pomogle da u tako kratkom roku dobijem materijale potrebne za testiranje ovog projekta.