2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
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
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 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
Č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
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.