▲ Наверх
ArduBlock Wiki Книги Компоненты Автор
Как узнать I2C адрес устройства?

       I2C — это такая шина данных, широко используемая в микроэлектронике. С помощью I2C можно подключить к Ардуино много разных полезных модулей, включая датчики, дисплеи, АЦП и даже другие платы Ардуино. Шина является адресной, так что каждое подключаемое устройство имеет свой адрес в диапазоне от 8 до 127. 


1. Программа для сканирования I2C шины

       Чтобы понять, какой всё-таки адрес у модуля, подключаемого к плате Ардуино, нужно просто «постучаться» по каждому из 119 возможных адресов. Если кто-то ответит, значит адрес рабочий!

 

#include <Wire.h>

void setup(){
    Wire.begin();

    Serial.begin(9600);
    while (!Serial);
    Serial.println("\nI2C Scanner");
}

void loop(){
    byte error, address;
    int nDevices;

    Serial.println("Scanning...");

    nDevices = 0;
    for(address = 8; address < 127; address++ ){
        Wire.beginTransmission(address);
        error = Wire.endTransmission();

        if (error == 0){
            Serial.print("I2C device found at address 0x");
            if (address<16)
                Serial.print("0");
            Serial.print(address,HEX);
            Serial.println(" !");

            nDevices++;
        }
        else if (error==4) {
            Serial.print("Unknow error at address 0x");
            if (address<16)
                Serial.print("0");
            Serial.println(address,HEX);
        }
    }
    if (nDevices == 0)
        Serial.println("No I2C devices found\n");
    else
        Serial.println("done\n");

    delay(5000);
}

 

Скачать программу: i2c_scanner.ino

 

      Загружаем программу на Ардуино Уно, подключаем тестируемое устройство к I2C шине и открываем монитор последовательного порта. Если все подключено правильно, то появится примерно такой отчет:

Сканер I2C шины на Ардуино Это значит, что дисплей имеет адрес 0x27 в шестнадцатеричной системе счисления. Теперь можно смело начинать работать!

Подробный видеоурок: Как узнать I2C адрес устройства?

Центр разработки программного обеспечения для микроконтроллеров Atmega
© 2019 ArduBlock.ru Все права защищены.
Сканер I2C
Резистор
Книги
Магазин
Автор
ardublock@mail.ru

22 032
10 608
7 344