Шина I2C (Inter-Integrated Circuit) - это протокол связи, который позволяет микроконтроллеру взаимодействовать с различными устройствами, подключенными к одной шине. Шина I2C является одной из наиболее распространенных и удобных способов подключения датчиков, дисплеев и других периферийных устройств к Arduino и другим МК.
Устройства на шине I2C имеют уникальные адреса, которые используются для их идентификации и взаимодействия с ними. Важно отметить, что некоторые устройства имеют возможность изменять свои адреса, обычно с помощью перманентных перемычек или специальных команд. Это особенно важно учитывать, когда на шине I2C подключено несколько устройств одного типа.
Цель этого урока - научиться сканировать устройства, подключенные к шине I2C, и определять их адреса с помощью Arduino.
Знание адресов подключенных устройств на шине I2C крайне важно для успешного взаимодействия с ними. Каждое устройство на шине I2C имеет уникальный адрес, который необходимо знать, чтобы отправлять и получать данные от него. Пример сканировании шины I2C с использованием Arduino из данного урока, поможет определить адреса подключенных устройств и использовать их в дальнейшей работе.
Теперь, когда мы понимаем, что мы будем делать и почему это важно, давайте перейдем к написанию кода и выполнению урока!
Перед тем, как начать, вам понадобятся следующие компоненты:
Подключите ваш Arduino к компьютеру с помощью USB-кабеля. Затем подключите устройства к шине I2C на Arduino. Обычно, пины A4 и A5 используются в качестве пинов SDA и SCL соответственно.
В большинстве случаев, библиотека Wire уже поставляется вместе с платами Arduino AVR и должна быть доступна без необходимости дополнительной установки.
Вы можете убедиться, что у вас установлена последняя версия плат Arduino AVR, следуя этим шагам:
Пожалуйста, обратите внимание, что указанные инструкции предназначены для Arduino IDE и плат Arduino AVR. Если вы используете другую IDE или другие платы Arduino, процесс установки и наличие библиотек могут незначительно отличаться.
Теперь давайте напишем программу, которая будет сканировать устройства на шине I2C и выводить результаты на монитор порта.
#include <Wire.h> //библиотека Wire. void setup() { Serial.begin(9600); Wire.begin(); Serial.println("I2C Scanner"); } void loop() { byte error, address; int devices = 0; Serial.println("Scanning..."); for (address = 1; address < 127; address++) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("Device found at address 0x"); if (address < 16) { Serial.print("0"); } Serial.print(address, HEX); Serial.println(); devices++; } else if (error == 4) { Serial.print("Unknown error at address 0x"); if (address < 16) { Serial.print("0"); } Serial.print(address, HEX); Serial.println(); } } if (devices == 0) { Serial.println("No I2C devices found"); } else { Serial.println("Scan complete"); } delay(5000); // Пауза в 5 секунд между сканированиями }
После загрузки кода, Arduino будет сканировать шину I2C и отображать найденные устройства в мониторе порта. Если устройства обнаружены, их адреса будут выводиться на мониторе порта.
Этот урок позволяет определить, какие устройства подключены к шине I2C и узнать их адреса. Это полезно для последующей работы с устройствами на шине I2C.
Удачи в вашем эксперименте с шиной I2C и Arduino!
Мы рады объявить о нашем присутствии на Boosty! Arduino-Tex приглашает всех наших друзей и последователей поддержать нас на этой замечательной платформе. Здесь вы найдете эксклюзивный контент, уникальные проекты и возможность стать частью нашей творческой команды. Присоединяйтесь к нам на Boosty и вместе мы сделаем мир Arduino еще удивительнее!
Понравился урок. Сканирование устройств на шине I2C с помощью Arduino? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Фотографии к статье
Файлы для скачивания
![]() |
Скетч сканирование устройств на шине I2C .ino | 1 Kb | 490 | Скачать |
Виджеты для Easy HMI
Читайте также
Мы в соц сетях
Комментарии