Mundarija:

Arduino I2C Sniffer: 4 qadam
Arduino I2C Sniffer: 4 qadam

Video: Arduino I2C Sniffer: 4 qadam

Video: Arduino I2C Sniffer: 4 qadam
Video: Amazing arduino project 2024, Iyul
Anonim
Arduino I2C Sniffer
Arduino I2C Sniffer

I2C - bu mikrokontrollerni bir xil elektronga ulangan tashqi periferiya qurilmalari bilan bog'lash uchun ishlatiladigan ketma -ket protokol. Har bir periferik qurilmaning o'ziga xos identifikatsiya raqami bo'lishi kerak, u ma'lum bir xabarni qabul qiluvchi sifatida aniqlash uchun ishlatiladi. Bu manzillar qurilma ishlab chiqaruvchisi tomonidan belgilanadi va ko'p hollarda ularni o'zgartirib bo'lmaydi. Sniffer ulangan qurilmalarni qidirayotgan barcha mumkin bo'lgan manzillarni ko'zdan kechiradi va topganlari haqida xabar beradi. Bu belgilanmagan chiplarni aniqlashga yordam beradi, chunki chip haqida qo'shimcha ma'lumot olish uchun uning manzilini bilish mumkin.

Bu qurilma Arduino UNO -da Raspberry Pi i2cdetect skriptining xatti -harakatlarini taqlid qiladi, ulangan qurilmalarni qidirayotgan barcha mumkin bo'lgan i2c manzillarini hidlaydi va natijalarini 16x02 LCD displeyda yaxshi chop etadi.

Ekrandagi hamma narsani joylashtirish uchun manzilning yuqori va pastki qismlari natijalar ustida bosilgan, yuqori qismi qalin shriftda. Ikkita tugma bir vaqtning o'zida 16 ta manzilni ko'rsatib, manzillar o'rtasida harakatlanish imkonini beradi. Agar qurilma aniqlansa, uni yozish manzili sifatida ko'rsatish uchun W bosiladi va o'qish manzili bo'lsa, R ko'rsatiladi. Agar bu manzilda hech narsa aniqlanmasa, ekranda defis (-) ko'rsatiladi.

1 -qadam: materiallar

Materiallar
Materiallar
Materiallar
Materiallar

Variant 1

1 x Arduino UNO

1 x 16x02 o'lchamli LCD displey

1x 10K potansiyometr

1x330 ohmli qarshilik

3x tugmachalari

Jumper kabellari

1x I2C darajali o'zgartirgich (materiallar rasmida emas)

2 -variant

1 x Arduino UNO

LCD klaviatura qalqoni (qalqondagi tugmalar ishlatilmaydi)

3x tugmachalari

Jumper kabellari

1x I2C darajali o'zgartirgich (materiallar rasmida emas)

2 -variant - quriladigan variant, chunki hozir menda shunday bo'lgan. Darajani o'zgartirgich sxemaning muhim qismidir, chunki bugungi kunda ko'pchilik qurilmalar 3.3V mantiqdan foydalanadi va Arduino -dan 5V ularga zarar etkazadi.

(Rasmlarda chizilgan material talab qilinmaydi.)

2 -qadam: O'chirish

O'chirish
O'chirish
O'chirish
O'chirish
O'chirish
O'chirish

LCD, Arduino misollari uchun standart pinout, I2C uchun standart pim va tugmachalar uchun 3 zaxira pin yordamida sxemasi juda to'g'ri.

Agar siz LCD klaviatura qalqonidan foydalansangiz, LCD displeyi o'zgaradi, lekin bu kodda allaqachon ko'rib chiqilgan. LCD klaviatura qalqoni tugmalari ishlatilmaydi, chunki ular ikkita mumkin bo'lgan sxemalar (Shield va yakka o'zi LCD) o'rtasidagi moslikni buzadigan analog so'rov usulini talab qiladi.

3 -qadam: kod

Kod
Kod

Agar LCD klaviatura qalqoni ishlatilsa, eskiz boshida #define LCD_SHIELD izohsiz qoldirilishi kerak. Aks holda, birinchi diagrammadan foydalanish uchun uni izohlang.

4 -qadam: Xulosa

Xulosa
Xulosa
Xulosa
Xulosa
Xulosa
Xulosa

Kod va sxemani sinab ko'rish uchun BQ32000 RTC chipi va MMA8452Q akselerometri ishlatilgan. Rasmlarda ko'rinib turibdiki, qurilma 4 ta manzilni aniqlaydi: 0x3A va 0xD0 yozish manzili sifatida, 0x3B va 0xD1 o'qilgan manzil sifatida. Bu manzillar sinov qurilmalariga mos keladi, shuning uchun kod ishlaydi.

Men qisqa vaqt ichida ushbu loyihani sinab ko'rish uchun kerakli materiallarni olishga yordam bergan Pekin Makerspace -dagi mehribon qizlarga, Fu Yao va Liu Xinga minnatdorchilik bildirmoqchiman.

Tavsiya: