В этом уроке мы познакомимся с шиной I2C. I2C это шина связи, использующая всего две линии. С помощью этого интерфейса Arduino может всего по двум проводам обмениваться данными со множеством устройств. Сегодня мы разберемся как подключить датчики и сенсоры к Ардуино по шине I2C, как обращаться к конкретному устройству и как получать данные с этих устройств. Для примера мы будем использовать термодатчик.

В этом уроке используется:

Отличный набор для начинающих: Купить
Arduino Uno: Купить
I2C датчик температуры, влажности и атмосферного давления: Купить

Подключение датчика температуры по шине I2C

Давайте рассмотрим схему подключения модуля Bme280 к ардуино. У этого модуля всего 4 контакта: Питание (VIN), земля (GND), линия тактирования (SCL) и линия данных (SDA). Линии I2C мы соединим с аналоговыми пинами А5 и А4 соответственно и подтянем сигнал к линии 5 В через резисторы на 10 КОм. Схема очень простая:

Подключение bme280 к ардуино
Подключение bme280 к ардуино

Теперь рассмотрим код. Мы будем получать данные с датчика, переводить градусы по Цельсию в градусы по фаренгейту и выводить все на экран компьютера:

Вам не нужно скачивать библиотеку Wire, так как она скачана по умолчанию в Arduino IDE. Адрес датчика температуры вы можете узнать на сайте производителя. Так же существуют модули с назначаемым адресом. В этом случае вам придется самостоятельно назначить адрес. Как это сделать должно быть описано на сайте производителя или в datasheet модуля.

2 КОММЕНТАРИИ

  1. Добрый день.

    Спасибо за урок. Очень полезно.
    Я сейчас применяю плату STM32F103C8.
    В ее составе 2 аппаратных IIC (1й — B6, B7(выводы) и 2й — B10, B11(выводы)).
    Сейчас я работаю с 1м. Также как у Вас в уроке. Все работает.
    Возникла необходимость использовать 2й IIC. Каким образом я могу это сделать?
    Добавление цифр 1 или 2 (как для Serial) не работает.
    Заранее спасибо.

    Антон.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here