Სარჩევი:

Arduino I2C Sniffer: 4 ნაბიჯი
Arduino I2C Sniffer: 4 ნაბიჯი

ვიდეო: Arduino I2C Sniffer: 4 ნაბიჯი

ვიდეო: Arduino I2C Sniffer: 4 ნაბიჯი
ვიდეო: 🤖Я в шоке! ChatGPT пишет Arduino проекты 2024, ივლისი
Anonim
Arduino I2C Sniffer
Arduino I2C Sniffer

I2C არის სერიული პროტოკოლი, რომელიც გამოიყენება მიკროკონტროლერის კომუნიკაციისთვის გარე პერიფერიულ მოწყობილობებთან, რომლებიც მიმაგრებულია იმავე წრეზე. თითოეულ პერიფერიას უნდა ჰქონდეს უნიკალური პირადობის მოწმობის ნომერი, რომელსაც ეწოდება მისამართი, რომელიც გამოიყენება მისი იდენტიფიცირებისთვის, როგორც მოცემული შეტყობინების სავარაუდო მიმღები. ეს მისამართები ენიჭება მოწყობილობის მწარმოებელს და უმეტეს დროს მათი შეცვლა შეუძლებელია. სნაიპერი სკანირებს ყველა შესაძლო მისამართს, ეძებს დაკავშირებულ მოწყობილობებს და აცნობებს მათ, ვინც აღმოაჩენს. ეს ხელს უწყობს მარკირებული ჩიპების იდენტიფიცირებას, რადგან ჩიპთან დაკავშირებით დამატებითი ინფორმაციის მისაღებად შესაძლებელია გუგლში ჩაწერა.

ეს მოწყობილობა ახდენს Arduino UNO– ს მიბაძვას Raspberry Pi i2cdeetect სკრიპტს, ყნოსავს ყველა შესაძლო i2c მისამართს, ეძებს დაკავშირებულ მოწყობილობებს და შედეგებს ლამაზად ბეჭდავს 16x02 LCD ეკრანზე.

იმისათვის, რომ ყველაფერი ეკრანზე მოთავსდეს, მისამართის ორივე მაღალი და დაბალი ნაწილი იბეჭდება შედეგების ზემოთ, მაღალი ნაწილი თამამი შრიფტით. ორი ღილაკი იძლევა მისამართებს შორის ნავიგაციის საშუალებას, ერთდროულად აჩვენებს 16 მისამართს. იმ შემთხვევაში, თუ მოწყობილობა გამოვლენილია, W იბეჭდება, რომ აჩვენოს იგი როგორც წერილობითი მისამართი და R ნაჩვენები იქნება, თუ ეს არის კითხვის მისამართი. იმ შემთხვევაში, თუ ამ მისამართზე არაფერია გამოვლენილი, დეფისი (-) გამოჩნდება ეკრანზე.

ნაბიჯი 1: მასალები

მასალები
მასალები
მასალები
მასალები

ვარიანტი 1

1 x Arduino UNO

1 x 16x02 LCD ეკრანი

1 x 10K პოტენომეტრი

1x 330 ohm რეზისტორი

3x დაჭერით ღილაკები

ჯუმბერის კაბელები

1x I2C დონის ცვლადი (არა მასალების სურათზე)

ვარიანტი 2

1 x Arduino UNO

LCD კლავიატურის ფარი (ფარის ღილაკები არ იქნება გამოყენებული)

3x დაჭერით ღილაკები

ჯუმბერის კაბელები

1x I2C დონის ცვლადი (არა მასალების სურათზე)

ვარიანტი 2 არის ის, რაც აშენდება, რადგან ეს არის ის, რაც მე მქონდა იმ მომენტში. დონის ცვლადი არის მიკროსქემის მნიშვნელოვანი ნაწილი, რადგან დღესდღეობით მოწყობილობების უმეტესობა იყენებს 3.3 ვ ლოგიკას და არდუინოს 5 ვ აზიანებს მათ.

(სურათებზე, გადაკვეთილი მასალა არ არის საჭირო.)

ნაბიჯი 2: წრე

წრე
წრე
წრე
წრე
წრე
წრე

წრე საკმაოდ სწორია, იყენებს სტანდარტულ პინუტს Arduino– ს მაგალითებისთვის LCD– ისთვის, ნაგულისხმევი ქინძისთავები I2C– სთვის და 3 სათადარიგო ქინძისთავს ღილაკებისთვის.

იმ შემთხვევაში, თუ თქვენ იყენებთ LCD კლავიატურის ფარს, LCD– ის pinout იცვლება, მაგრამ ეს უკვე განიხილება კოდში. LCD კლავიატურის ფარის ღილაკები არ გამოიყენება, რადგან მათ სჭირდებათ გამოკითხვის ანალოგური მეთოდი, რომელიც არღვევს თავსებადობას ორ შესაძლო განხორციელების სქემებს შორის (ფარი და ცალკე LCD)

ნაბიჯი 3: კოდი

კოდი
კოდი

იმ შემთხვევაში, თუ LCD კლავიატურის ფარი გამოიყენება, #განსაზღვრეთ LCD_SHIELD ესკიზის დასაწყისში უნდა დარჩეს უკომენტაროდ. წინააღმდეგ შემთხვევაში, გააკეთეთ კომენტარი, რომ გამოიყენოთ პირველი დიაგრამა.

ნაბიჯი 4: დასკვნები

დასკვნები
დასკვნები
დასკვნები
დასკვნები
დასკვნები
დასკვნები

კოდისა და მიკროსქემის შესამოწმებლად გამოყენებულია BQ32000 RTC ჩიპი და MMA8452Q ამაჩქარებელი. როგორც სურათებზე ჩანს, მოწყობილობა აღმოაჩენს 4 მისამართს: 0x3A და 0xD0 როგორც ჩაწერის მისამართები, და 0x3B და 0xD1 როგორც წაკითხული მისამართები. ეს მისამართები შეესაბამება ტესტის მოწყობილობებს, ასე რომ კოდი მუშაობს.

მინდა მადლობა გადავუხადო პეკინ მეიკერსფეისის კეთილ გოგონებს, ფუ იაოს და ლიუ სინს, რომ დამეხმარნენ ამ პროექტის შესამოწმებლად საჭირო მასალების მოპოვებაში ამ მოკლე ხანში.

გირჩევთ: