Daftar Isi:

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, Juli
Anonim
Arduino I2C Sniffer
Arduino I2C Sniffer

I2C adalah protokol serial yang digunakan untuk mengomunikasikan mikrokontroler dengan periferal eksternal yang terpasang pada sirkuit yang sama. Setiap periferal harus memiliki nomor ID unik yang disebut alamat yang digunakan untuk mengidentifikasinya sebagai penerima yang dituju dari pesan yang diberikan. Alamat tersebut ditetapkan oleh produsen perangkat dan sebagian besar waktu tidak dapat diubah. Sniffer memindai semua alamat yang memungkinkan untuk mencari perangkat yang terhubung dan melaporkan perangkat yang ditemukannya. Ini membantu mengidentifikasi chip yang tidak ditandai karena alamatnya dapat di-google untuk informasi lebih lanjut mengenai chip tersebut.

Perangkat ini meniru pada Arduino UNO perilaku skrip Raspberry Pi i2cdetect, mengendus semua alamat i2c yang mungkin mencari perangkat yang terhubung dan mencetak hasilnya dengan baik pada layar LCD 16x02.

Agar sesuai dengan semua yang ada di layar, bagian tinggi dan rendah dari alamat dicetak di atas hasil, bagian tinggi berada pada jenis huruf tebal. Dua tombol push memungkinkan untuk menavigasi di antara alamat, menampilkan 16 alamat sekaligus. Jika perangkat terdeteksi, W akan dicetak untuk menunjukkannya sebagai alamat penulisan dan R akan ditampilkan jika itu adalah alamat baca. Jika tidak ada yang terdeteksi di alamat itu, tanda hubung (-) akan ditampilkan di layar.

Langkah 1: Bahan

Bahan
Bahan
Bahan
Bahan

Pilihan 1

1 x Arduino UNO

1x16x02 layar LCD

Potensiometer 1x 10K

1x 330 ohm resistor

3x Tekan tombol

Kabel jumper

1x shifter level I2C (tidak pada gambar material)

pilihan 2

1 x Arduino UNO

LCD Keypad Shield (tombol pada pelindung tidak akan digunakan)

3x Tekan tombol

Kabel jumper

1x shifter level I2C (tidak pada gambar material)

Opsi 2 adalah yang akan dibangun karena itulah yang saya miliki saat ini. Penggeser level adalah bagian penting dari rangkaian karena saat ini sebagian besar perangkat menggunakan logika 3.3V dan 5V dari Arduino merusaknya.

(Pada gambar, bahan yang dicoret tidak diperlukan.)

Langkah 2: Sirkuit

sirkuit
sirkuit
sirkuit
sirkuit
sirkuit
sirkuit

Rangkaian ini cukup lurus ke depan, menggunakan pinout standar untuk contoh Arduino untuk LCD, pin default untuk I2C dan 3 pin cadangan untuk tombol tekan.

Jika Anda menggunakan LCD Keypad Shield, pinout untuk LCD berubah tetapi itu sudah dipertimbangkan dalam kode. Tombol LCD Keypad Shield tidak digunakan karena memerlukan metode polling analog yang merusak kompatibilitas antara dua kemungkinan sirkuit implementasi (Perisai dan LCD yang berdiri sendiri)

Langkah 3: Kode

Kode
Kode

Dalam hal LCD Keypad Shield digunakan, #define LCD_SHIELD harus dibiarkan tanpa komentar di awal sketsa. Jika tidak, beri komentar untuk menggunakan diagram pertama.

Langkah 4: Kesimpulan

Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan

Untuk menguji kode dan sirkuit, chip BQ32000 RTC dan akselerometer MMA8452Q digunakan. Seperti dapat dilihat pada gambar, perangkat mendeteksi 4 alamat: 0x3A dan 0xD0 sebagai alamat tulis, dan 0x3B dan 0xD1 sebagai alamat baca. Alamat ini sesuai dengan perangkat uji sehingga kode berfungsi.

Saya ingin mengucapkan terima kasih kepada gadis-gadis baik di Beijing Makerspace, Fu Yao dan Liu Xin, karena telah membantu saya mendapatkan materi yang diperlukan untuk menguji proyek ini dalam waktu singkat.

Direkomendasikan: