
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

I2C - это последовательный протокол, используемый для связи микроконтроллера с внешними периферийными устройствами, подключенными к той же цепи. Каждое периферийное устройство должно иметь уникальный идентификационный номер, называемый адресом, который используется для идентификации его как предполагаемого получателя данного сообщения. Эти адреса назначаются производителем устройства и в большинстве случаев не могут быть изменены. Сниффер сканирует все возможные адреса в поисках подключенных устройств и сообщает о найденных. Это помогает идентифицировать немаркированные чипы, так как затем адрес можно поискать в Google для получения дополнительной информации о чипе.
Это устройство имитирует на Arduino UNO поведение сценария Raspberry Pi i2cdetect, обнюхивая все возможные адреса i2c в поисках подключенных устройств и красиво распечатывая результаты на ЖК-экране 16x02.
Чтобы уместить все на экране, верхняя и нижняя части адреса печатаются над результатами, а верхняя часть - жирным шрифтом. Две кнопки позволяют перемещаться между адресами, показывая 16 адресов одновременно. В случае обнаружения устройства W будет напечатан, чтобы показать его как адрес записи, и R будет показан, если это адрес чтения. Если по этому адресу ничего не обнаружено, на экране будет отображаться дефис (-).
Шаг 1: материалы


Опция 1
1 х Arduino UNO
1 x 16x02 ЖК-экран
1x 10K потенциометр
1x 330 Ом резистор
3x кнопки
Соединительные кабели
1x переключатель уровня I2C (не на фотографии материалов)
Вариант 2
1 х Arduino UNO
LCD Keypad Shield (кнопки на экране не используются)
3x кнопки
Соединительные кабели
1x переключатель уровня I2C (не на фотографии материалов)
Вариант 2 - это тот, который будет построен, потому что это то, что у меня было под рукой в данный момент. Сдвигатель уровня является важной частью схемы, поскольку в настоящее время большинство устройств используют логику 3,3 В, а 5 В от Arduino повреждают их.
(На картинках зачеркнутый материал не требуется.)
Шаг 2: Схема



Схема довольно проста, используется стандартная распиновка для примеров Arduino для ЖК-дисплея, контакты по умолчанию для I2C и 3 запасных контакта для кнопок.
Если вы используете экран LCD Keypad Shield, распиновка ЖК-дисплея изменится, но это уже учтено в коде. Кнопки LCD Keypad Shield не используются, потому что для них требуется аналоговый метод опроса, который нарушает совместимость между двумя возможными схемами реализации (Shield и автономный ЖК-дисплей).
Шаг 3: Код

В случае использования экрана ЖК-клавиатуры, #define LCD_SHIELD необходимо оставить без комментария в начале эскиза. В противном случае закомментируйте его, чтобы использовать первую диаграмму.
Шаг 4: выводы



Для тестирования кода и схемы использовались микросхема BQ32000 RTC и акселерометр MMA8452Q. Как видно на рисунках, устройство определяет 4 адреса: 0x3A и 0xD0 как адреса записи и 0x3B и 0xD1 как адреса чтения. Эти адреса соответствуют тестовым устройствам, поэтому код работает.
Я хотел бы поблагодарить добрых девушек из Beijing Makerspace, Фу Яо и Лю Синь, за то, что они помогли мне получить материалы, необходимые для тестирования этого проекта, в такой короткий срок.
Рекомендуемые:
Релейный переключатель RFID Arduino Uno, с дисплеем I2C: 4 шага

RFID Arduino Uno Relay Switch, с дисплеем I2C: Здравствуйте, это мой первый проект, меня зовут Оскар, мне 13. Этот проект работает с дисплеем I2C, а не с обычным
Учебное пособие: как Arduino управлять несколькими устройствами с одинаковым адресом с помощью мультиплексора TCA9548A I2C: 3 шага

Учебное пособие: Как Arduino управлять несколькими устройствами с одинаковыми адресами с помощью мультиплексора TCA9548A I2C: Описание: Модуль мультиплексора I2C TCA9548A предназначен для подключения устройств с одним и тем же адресом I2C (до 8 одинаковых адресов I2C), подключенных к одному микроконтроллеру. Мультиплексор действует как привратник, доставляя команды выбранному набору
ЖК-дисплей I2C / IIC - Использование ЖК-дисплея SPI для ЖК-дисплея I2C Использование модуля SPI-IIC с Arduino: 5 шагов

ЖК-дисплей I2C / IIC | Используйте ЖК-дисплей SPI для ЖК-дисплея I2C Использование модуля SPI-IIC с Arduino: Привет, ребята, так как обычный ЖК-дисплей SPI 1602 имеет слишком много проводов для подключения, поэтому его очень сложно связать с Arduino, но на рынке доступен один модуль, который может преобразовать дисплей SPI в дисплей IIC, поэтому вам нужно подключить только 4 провода
ЖК-дисплей I2C / IIC - Преобразование ЖК-дисплея SPI в ЖК-дисплей I2C: 5 шагов

ЖК-дисплей I2C / IIC | Преобразование ЖК-дисплея SPI в ЖК-дисплей I2C: для использования ЖК-дисплея spi требуется слишком много подключений, что действительно сложно сделать, поэтому я нашел модуль, который может преобразовать ЖК-дисплей i2c в ЖК-дисплей spi, поэтому давайте начнем
Символьный ЖК-адаптер I2c (пример подключения I2c): 12 шагов (с изображениями)

Символьный ЖК-адаптер I2c (пример подключения I2c): я создаю схему подключения для символьного адаптера i2c. Проверяю обновления на моем сайте. Теперь я добавляю также схему подключения проводов, чтобы использовать исходную библиотеку, а не мою вилку. для символьных ЖК-дисплеев, разветвленного проектора