Isi kandungan:

Arduino I2C Sniffer: 4 Langkah
Arduino I2C Sniffer: 4 Langkah

Video: Arduino I2C Sniffer: 4 Langkah

Video: Arduino I2C Sniffer: 4 Langkah
Video: How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16x2 LCD I2C Tutorial 2024, Julai
Anonim
Arduino I2C Sniffer
Arduino I2C Sniffer

I2C adalah protokol bersiri yang digunakan untuk menyampaikan mikrokontroler dengan periferal luaran yang dilekatkan pada litar yang sama. Setiap periferal mesti mempunyai nombor ID unik yang disebut alamat yang digunakan untuk mengenal pasti ia sebagai penerima mesej yang dimaksudkan. Alamat tersebut diberikan oleh pengeluar peranti dan selalunya tidak dapat diubah. Sniffer mengimbas semua alamat yang mungkin untuk mencari peranti yang disambungkan dan melaporkan alamat yang dijumpainya. Ini membantu mengenal pasti kerepek yang tidak ditandai dan kemudian alamatnya dapat dicari untuk mendapatkan lebih banyak maklumat mengenai cip tersebut.

Peranti ini meniru pada Arduino UNO tingkah laku skrip Raspberry Pi i2cdetect, mengendus semua alamat i2c yang mungkin mencari peranti yang bersambung dan mencetak hasilnya dengan baik pada layar LCD 16x02.

Untuk memuatkan semua yang ada di layar, kedua-dua bahagian alamat tinggi dan rendah dicetak di atas hasilnya, bahagian yang tinggi terdapat pada jenis huruf tebal. Dua butang tekan memungkinkan untuk menavigasi antara alamat, menunjukkan 16 alamat sekaligus. Sekiranya peranti terdeteksi, W akan dicetak untuk menunjukkannya sebagai alamat tulisan dan R akan ditunjukkan sekiranya itu adalah alamat membaca. Sekiranya tidak ada yang dikesan di alamat itu, tanda hubung (-) akan ditunjukkan di skrin.

Langkah 1: Bahan

Bahan
Bahan
Bahan
Bahan

Pilihan 1

1 x Arduino UNO

Skrin LCD 1 x 16x02

Potensiometer 1x 10K

Perintang 1x 330 ohm

Butang tekan 3x

Kabel pelompat

Shifter tahap 1x I2C (bukan pada gambar bahan)

Pilihan 2

1 x Arduino UNO

LCD Keypad Shield (butang pada perisai tidak akan digunakan)

Butang tekan 3x

Kabel pelompat

Shifter tahap 1x I2C (bukan pada gambar bahan)

Pilihan 2 adalah pilihan yang akan dibina kerana itulah yang saya miliki ketika ini. Pengubah tahap adalah bahagian penting dalam litar kerana pada masa ini kebanyakan peranti menggunakan logik 3.3V dan 5V dari Arduino merosakkannya.

(Pada gambar, bahan yang dicoret tidak diperlukan.)

Langkah 2: Litar

Litar
Litar
Litar
Litar
Litar
Litar

Litarnya cukup lurus ke depan, menggunakan pinout standard untuk contoh Arduino untuk LCD, pin lalai untuk I2C dan 3 pin ganti untuk butang tekan.

Sekiranya anda menggunakan LCD Keypad Shield, pinout untuk LCD akan berubah tetapi itu sudah dipertimbangkan dalam kodnya. Butang Perisai Keypad LCD tidak digunakan kerana memerlukan kaedah pengundian analog yang memecahkan keserasian antara dua kemungkinan litar pelaksanaan (Perisai dan LCD yang berdiri sendiri)

Langkah 3: Kod

Kod
Kod

Sekiranya Perisai Keypad LCD digunakan, #tentukan LCD_SHIELD mesti dibiarkan tanpa komen pada awal lakaran. Jika tidak, komen untuk menggunakan rajah pertama.

Langkah 4: Kesimpulan

Kesimpulannya
Kesimpulannya
Kesimpulannya
Kesimpulannya
Kesimpulannya
Kesimpulannya

Untuk menguji kod dan litar, digunakan cip RTC BQ32000 dan akselerometer MMA8452Q. Seperti yang dapat dilihat pada gambar, peranti ini mengesan 4 alamat: 0x3A dan 0xD0 sebagai alamat tulis, dan 0x3B dan 0xD1 sebagai alamat baca. Alamat ini sesuai dengan alat uji sehingga kodnya berfungsi.

Saya ingin mengucapkan terima kasih kepada gadis-gadis baik di Beijing Makerspace, Fu Yao dan Liu Xin, kerana telah membantu saya mendapatkan bahan yang diperlukan untuk menguji projek ini dengan cepat.

Disyorkan: