Kazalo:

Arduino I2C Sniffer: 4 koraki
Arduino I2C Sniffer: 4 koraki

Video: Arduino I2C Sniffer: 4 koraki

Video: Arduino I2C Sniffer: 4 koraki
Video: Подключаем текстовый LCD 16x2 к arduino по I2C 2024, November
Anonim
Arduino I2C Vohač
Arduino I2C Vohač

I2C je serijski protokol, ki se uporablja za komunikacijo mikrokrmilnika z zunanjimi zunanjimi napravami, priključenimi na isto vezje. Vsaka zunanja naprava mora imeti enolično identifikacijsko številko, imenovano naslov, ki se uporablja za identifikacijo kot predvidenega prejemnika danega sporočila. Te naslove dodeli proizvajalec naprave in jih večinoma ni mogoče spremeniti. Sniffer pregleda vse možne naslove in išče povezane naprave ter poroča o tistih, ki jih najde. To pomaga pri prepoznavanju neoznačenih žetonov, potem pa lahko naslov poiščete za več informacij o čipu.

Ta naprava na Arduino UNO posnema vedenje skripta Raspberry Pi i2cdetect, povoha vse možne naslove i2c, ki iščejo povezane naprave, rezultate pa lepo natisne na LCD zaslonu velikosti 16x02.

Če želite, da se na zaslon prilega vse, so visoki in nizki deli naslova natisnjeni nad rezultati, visok del pa je na krepki pisavi. Dva gumba omogočata krmarjenje med naslovi, hkrati pa prikazujeta 16 naslovov. V primeru, da je naprava zaznana, bo W natisnjen, da bo prikazan kot naslov za pisanje, R pa bo prikazan, če gre za naslov za branje. Če na tem naslovu ni nič zaznanega, se na zaslonu prikaže vezaj (-).

1. korak: Materiali

Materiali
Materiali
Materiali
Materiali

Možnost 1

1 x Arduino UNO

1 x 16x02 LCD zaslon

1x 10K potenciometer

1x 330 ohmski upor

3x gumbi

Mostični kabli

1x menjalnik nivoja I2C (ni na sliki materiala)

Možnost 2

1 x Arduino UNO

Zaščita tipkovnice LCD (gumbi na ščitu se ne uporabljajo)

3x gumbi

Mostični kabli

1x menjalnik nivoja I2C (ni na sliki materiala)

Možnost 2 je tista, ki bo zgrajena, ker je to tisto, kar sem imel trenutno pri roki. Preklopnik nivoja je pomemben del vezja, saj dandanes večina naprav uporablja logiko 3.3V, 5V iz Arduina pa jih poškoduje.

(Na slikah prečrtani material ni potreben.)

2. korak: Vezje

Vezje
Vezje
Vezje
Vezje
Vezje
Vezje

Vezje je precej preprosto, z uporabo standardnega izhoda za primere Arduino za LCD, privzetih zatičev za I2C in 3 rezervnih zatičev za tipke.

Če uporabljate ščit za tipkovnico LCD, se izpis za LCD spremeni, vendar je to že upoštevano v kodi. Gumbi za zaščito tipkovnice LCD se ne uporabljajo, ker zahtevajo analogno metodo glasovanja, ki prekine združljivost med dvema možnima izvedbenima vezjema (ščit in samostojni LCD)

3. korak: Koda

Koda
Koda

Če se uporablja ščit tipkovnice LCD, je treba #define LCD_SHIELD na začetku skice pustiti razkomentirano. V nasprotnem primeru komentirajte, če želite uporabiti prvi diagram.

4. korak: Zaključki

Sklepi
Sklepi
Sklepi
Sklepi
Sklepi
Sklepi

Za testiranje kode in vezja sta bila uporabljena čip BQ32000 RTC in merilnik pospeška MMA8452Q. Kot je razvidno iz slik, naprava zaznava 4 naslove: 0x3A in 0xD0 kot naslove za pisanje ter 0x3B in 0xD1 kot naslove za branje. Ti naslovi ustrezajo preskusnim napravam, zato koda deluje.

Rad bi se zahvalil prijaznim dekletom iz podjetja Beijing Makerspace, Fu Yao in Liu Xin, ki so mi pomagale pri tako kratkem času pridobiti materiale, potrebne za preizkušanje tega projekta.

Priporočena: