Sadržaj:

Arduino I2C njuškalo: 4 koraka
Arduino I2C njuškalo: 4 koraka

Video: Arduino I2C njuškalo: 4 koraka

Video: Arduino I2C njuškalo: 4 koraka
Video: Update WiFly Module with Comm Operator 2024, Juli
Anonim
Arduino I2C njuškalo
Arduino I2C njuškalo

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

Materijali
Materijali
Materijali
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
Krug
Krug
Krug
Krug
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

Kod
Kod

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

Zaključci
Zaključci
Zaključci
Zaključci
Zaključci
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.

Preporučuje se: