@amperka/i2c-hub

Библиотека для работы с Расширитель портов I²C (Troyka-модуль).

// настраиваем шину I²C
PrimaryI2C.setup({sda: SDA,  scl: SCL,  bitrate: 400000});
// подключаем модуль работы с расширителем портов I²C
var splitter = require('@amperka/i2c-hub').connect({
  i2c: PrimaryI2C, // выбор I²C, на которой установлен модуль расширителя портов I²C
  address: 0x70 // адрес модуля расширителя портов I²C
});
// альтернативный вариант подключения
var splitter = require('@amperka/i2c-hub').connect();
// переводим расширитель портов I²C на канал 2
splitter.setBusChannel(2);
// выводим в консоль номер канала
// на который сейчас переведён расширитель портов I²C
console.log(splitter.getBusChannel());

Функции и объекты модуля

connect([opts]);

Создаёт новый объект TroykaI2CHub. Объект opts может содержать поля:

  • i2c — I2C, к которому подключён модуль, например I2C1.
  • address — адрес модуля на шине I2C.

Если объект opts не передан, по умолчанию используется PrimaryI2C и адрес 0x70.

TroykaI2CHub

Класс для взаимодействия с расширитель портов I²C модулями. Для создания нового объекта, используйте функцию connect.

TroykaI2CHub.setBusChannel(channel)

Переключает расширитель портов I²C на канал channel, доступные каналы в диапазоне 0–7. По умолчанию включаем шину I²C на канал 0.

// настраиваем шину I²C
PrimaryI2C.setup({sda: SDA,  scl: SCL,  bitrate: 400000});
// подключаем модуль работы с расширителем портов I²C
var splitter = require('@amperka/i2c-hub').connect();
var i = 0;
// последовательно переводим расширитель портов I²C на канал от 0 до 7
setInterval(() => {
  if (i == 8) {
    i = 0;
  }
  splitter.setBusChannel(i);
  i++;
}, 100);

TroykaI2CHub.getBusChannel()

Возвращает текущий номер канала на который переключен расширитель портов I²C.

// настраиваем шину I²C
PrimaryI2C.setup({sda: SDA,  scl: SCL,  bitrate: 400000});
// подключаем модуль работы с расширителем портов I²C
var splitter = require('@amperka/i2c-hub').connect();
var i = 0;
// последовательно переводим расширитель портов I²C на канал от 0 до 7
// и выводим номер текущего канала в лог
setInterval(() => {
  if (i == 8) {
    i = 0;
  }
  splitter.setBusChannel(i);
  console.log(splitter.getBusChannel());
  i++;
}, 100);