Due, i²c, акселерометр + компас

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем maxzhivchik, 12 сен 2016.

  1. maxzhivchik

    maxzhivchik Нуб

    Добрый день.
    Использую в своём проекте на arduino due два troyka модуля:
    1. http://wiki.amperka.ru/продукты:troyka-compass
    2. http://wiki.amperka.ru/продукты:troyka-accelerometer
    Оба подключаю параллельно к контактам SDA/SCL (20/21), для работы с ними программно использую библиотеку TruykaIMU.h.
    После инициализации только одного датчика (компас или акселерометр) я могу с ним работать; после попытки инициализировать оба и прочитать что-либо из компаса же ардуинка виснет.
    i2cScanner (http://playground.arduino.cc/Main/I2cScanner) показывает следующее:
    Код (Text):
    > i2scan
    Scanning...
    I2C device found at address 0x18  ! <-- LIS331DLH, акселерометр
    done

    > i2scan
    Scanning...
    I2C device found at address 0x18  ! <-- LIS331DLH, акселерометр
    done

    ... (спустя некоторое время) ...

    > i2scan
    Scanning...
    I2C device found at address 0x18  ! <-- LIS331DLH, акселерометр
    I2C device found at address 0x1C  ! <-- LIS3MDL, магнетометр
    done
    Если же дождаться, пока оба устройства начнут опознаваться i2cscanner'ом, читать становится можно из них обоих, до какого-то случайного момента, когда неудавшаяся попытка чтения снова не повесит ардуину.
    Датчики висят на тонких проводах длиной 40..50 см.
    Что я делаю не так?
    wiring.png