@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());
Функции и объекты модуля
Создаёт новый объект TroykaI2CHub
. Объект opts
может содержать поля:
i2c
— I2C, к которому подключён модуль, напримерI2C1
.address
— адрес модуля на шине I2C.
Если объект opts
не передан, по умолчанию используется PrimaryI2C
и адрес 0x70
.
Класс для взаимодействия с расширитель портов I²C модулями. Для создания нового объекта, используйте функцию connect
.
Переключает расширитель портов 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);
Возвращает текущий номер канала на который переключен расширитель портов 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);