Съдържание:
Видео: Arduino I2C Sniffer: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
I2C е сериен протокол, използван за комуникация на микроконтролер с външни периферни устройства, свързани към същата схема. Всяко периферно устройство трябва да има уникален идентификационен номер, наречен адрес, който се използва за идентифицирането му като предполагаем получател на дадено съобщение. Тези адреси се присвояват от производителя на устройството и в повечето случаи не могат да се променят. Снифър сканира всички възможни адреси, търсейки свързани устройства, и докладва тези, които намери. Това помага да се идентифицират немаркирани чипове, тъй като тогава адресът може да бъде потърсен в Google за повече информация относно чипа.
Това устройство имитира на Arduino UNO поведението на скрипта Raspberry Pi i2cdetect, надушвайки всички възможни i2c адреси в търсене на свързани устройства и отпечатвайки добре резултатите на 16x02 LCD екран.
За да побере всичко на екрана, високата и долната част на адреса се отпечатват над резултатите, като високата част е върху удебелен шрифт. Два бутона позволяват да се придвижвате между адресите, показвайки 16 адреса наведнъж. В случай на откриване на устройство, W ще бъде отпечатано, за да се покаже като адрес за писане, а R ще се покаже, ако това е адрес за четене. В случай, че нищо не е открито на този адрес, на екрана ще се покаже тире (-).
Стъпка 1: Материали
Опция 1
1 x Arduino UNO
1 x 16x02 LCD екран
1x 10K потенциометър
1x резистор 330 ома
3x бутони
Джъмперни кабели
1x превключвател на ниво I2C (не на снимката на материалите)
Вариант 2
1 x Arduino UNO
Щит на LCD клавиатурата (бутоните на щита няма да се използват)
3x бутони
Джъмперни кабели
1x превключвател на ниво I2C (не на снимката на материалите)
Вариант 2 е този, който ще бъде изграден, защото точно това имах под ръка в момента. Превключвателят на нивото е важна част от веригата, тъй като в днешно време повечето устройства използват 3.3V логика и 5V от Arduino ги уврежда.
(На снимките зачеркнатият материал не се изисква.)
Стъпка 2: Схема
Веригата е доста правилна, използвайки стандартния извод за примерите на Arduino за LCD дисплея, стандартните щифтове за I2C и 3 резервни щифта за бутоните.
В случай, че използвате щит за клавиатура на LCD, извеждането на LCD дисплея се променя, но това вече се разглежда в кода. Бутоните за щитове на клавиатурата на LCD не се използват, защото изискват метод за аналогово опросване, който нарушава съвместимостта между двете възможни схеми за изпълнение (щит и самостоятелен LCD)
Стъпка 3: Код
В случай, че се използва щитът за LCD клавиатура, #define LCD_SHIELD трябва да бъде оставен без коментар в началото на скицата. В противен случай го коментирайте, за да използвате първата диаграма.
Стъпка 4: Заключения
За тестване на кода и веригата бяха използвани BQ32000 RTC чип и акселерометър MMA8452Q. Както може да се види на снимките, устройството открива 4 адреса: 0x3A и 0xD0 като адреси за запис и 0x3B и 0xD1 като адреси за четене. Тези адреси съответстват на тестовите устройства, така че кодът да работи.
Бих искал да благодаря на любезните момичета от Beijing Makerspace, Fu Yao и Liu Xin, че ми помогнаха да получа материалите, необходими за тестване на този проект, за толкова кратко време.
Препоръчано:
Първи стъпки с I2C сензорен интерфейс ?? - Свържете вашия MMA8451 с помощта на ESP32: 8 стъпки
Първи стъпки с I2C сензорен интерфейс ?? - Свържете вашия MMA8451 с помощта на ESP32: В този урок ще научите всичко за това как да стартирате, свържете и получите I2C устройство (акселерометър), работещо с контролер (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Arduino UNO Logic Sniffer: 8 стъпки (със снимки)
Arduino UNO Logic Sniffer: Този проект започна като прост експеримент. По време на изследването ми върху листа с данни на ATMEGA328P за друг проект открих нещо доста интересно. Устройството за улавяне на вход на таймер1. Той позволява на микроконтролера на нашия Arduino UNO да открие сигнал
I2C / IIC LCD дисплей - Използвайте SPI LCD към I2C LCD дисплея, използвайки SPI към IIC модул с Arduino: 5 стъпки
I2C / IIC LCD дисплей | Използвайте SPI LCD към I2C LCD дисплея Използване на SPI към IIC модул с Arduino: Здравейте момчета, тъй като нормалният SPI LCD 1602 има твърде много кабели за свързване, така че е много трудно да го свържете с arduino, но на пазара има един модул, който може конвертирате SPI дисплея в IIC дисплей, така че тогава трябва да свържете само 4 проводника
I2C / IIC LCD дисплей - Конвертиране на SPI LCD към I2C LCD дисплей: 5 стъпки
I2C / IIC LCD дисплей | Конвертирайте SPI LCD към I2C LCD дисплей: използването на spi lcd дисплей се нуждае от твърде много връзки, което е наистина трудно да се направи, затова намерих модул, който може да преобразува i2c lcd в spi lcd, така че нека започнем
Характерен LCD I2c адаптер (Пример за I2c връзка): 12 стъпки (със снимки)
Характерен LCD I2c адаптер (Пример за I2c връзка): Правя схема на свързване за i2c адаптер за показване на символи. Проверете актуализациите на моя сайт. Сега добавям и схема за свързване на кабели, за да използвам оригиналната библиотека, а не моята разклонена. LiquidCrystal Arduino библиотека за персоналните LCD дисплеи, разклонени проекции