@amperka/x-fet

Библиотека для работы с Сборкой силовых ключей(Zelo-модуль) по протоколу SPI.

// инициализируем SPI2 
SPI2.setup({baud:3200000, mosi:B15, sck:B13, miso:B14}); 
 
// подключаем модуль работы со сборкой силовых ключей
var mosfet = require('@amperka/x-fet').connect({
  cs:     A0,   // пин cs нужен для обращения к ключам
  spi:    SPI2, // интерфейс SPI к которому подключены ключи
  qtyMod: 3     // количество модулей в цепочке
});
 
mosfet.turnOn(1);           // включаем выход 1 (по умолчанию на модуле 0)
mosfet.turnOn(2,1);         // включаем выход 2 на модуле 1
mosfet.turnOn([3,4,5]);     // включаем выход 3, 4, 5 (по умолчанию на модуле 0)
mosfet.turnOn([6,7],2);     // включаем выход 6, 7 на модуле 2
mosfet.toggle(2);           // переключаем выход 2 (по умолчанию на модуле 0)
mosfet.toggle(2,2);         // переключаем выход 2 на модуле 2
mosfet.toggle([3,4,5]);     // переключаем выход 3, 4, 5 (по умолчанию на модуле 0)
mosfet.toggle([6,7],0);     // переключаем выход 6, 7 на модуле 0
mosfet.blink(1,0,1,1);      // мигаем выходом 1 на модуле 0 с интервалами 1 сек вкл и 1 сек выкл
mosfet.blink([2,3],2,0.5,2);// мигаем выходами 2,3 на модуле 2 с интервалами 0.5 сек вкл и 2 сек выкл
mosfet.turnAllOn(0);        // включаем все выходы на модуле 0
mosfet.turnAllOff([0,1]);   // выключаем все выходы на модуле 0 и 1
mosfet.turnAllOn([0,1,2]);  // включаем все выходы на модуле 0,1 и 2
mosfet.turnAllOff();        // выключаем все выходы на всех доступных модулях

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

connect({cs, spi, qtyMod});

Возвращает новый объект X_fet для взаимодействия с модулем. В качестве параметра cs принимается пин подключенный к контакту CS на модуле. Параметр spi передает интерфейс SPI к которому подключен модуль. А параметр qtyMod передаёт количество модулей в цепи.

connect(cs);

Можно использовать и сокращённую форму.Указываем пин cs , а по умолчанию spi = SPI2 и qtyMod = 1.

X-fet

Класс для взаимодействия с P-fet или N-fet модулями. Для создания нового объекта, используйте функцию connect.

X_fet.turnOn(pin || [pins],numMod)

Включает выход pin или несколько выходов переданных массивом [pins] на модуле numMod. По умолчанию включаем выходы на модуле 0

var X_fet = require('@amperka/X-fet').connect({
  cs: A0,
  spi: SPI2,
  qtyMod: 2
});
 
X_fet.turnOn(1); // включаем выход 1 (по умолчанию на модуле 0)
X_fet.turnOn(2,1);// включаем выход 2 на модуле 1
X_fet.turnOn([3,4,5]); // включаем выход 3, 4, 5 (по умолчанию на модуле 0)
X_fet.turnOn([6,7],2); // включаем выход 6, 7 на модуле 2

X_fet.turnOff(pin || [pins], numMod)

Отключает выход pin или несколько выходов переданных массивом [pins] на модуле numMod. По умолчанию включаем выходы на модуле 0

var X_fet = require('@amperka/X-fet').connect({
  cs: A0,
  spi: SPI2,
  qtyMod: 2
});
 
X_fet.turnOff(1); // отключаем выход 1 (по умолчанию на модуле 0)
X_fet.turnOff(2,1);// отключаем выход 2 на модуле 1
X_fet.turnOff([3,4,5]); // отключаем выход 3, 4, 5 (по умолчанию на модуле 0)
X_fet.turnOff([6,7],2); // отключаем выход 6, 7 на модуле 2

X_fet.toggle(pin || [pins], numMod)

Меняет состояние выхода pin или несколько выходов переданных массивом [pins] на противоположное, на модуле numMod. По умолчанию включаем выходы на модуле 0

var X_fet = require('@amperka/X-fet').connect({
  cs: A0,
  spi: SPI2,
  qtyMod: 2
});
 
X_fet.toggle(1); // переключаем выход 1 (по умолчанию на модуле 0)
X_fet.toggle(2,1); // переключаем выход 2 на модуле 1
X_fet.toggle([3,4,5]); // переключаем выход 3, 4, 5 (по умолчанию на модуле 0)
X_fet.toggle([6,7],2); // переключаем выход 6, 7 на модуле 2

Заставляет мигать выход pin или несколько выходов переданных массивом [pins] на модуле numMod. С заданными интервалами

// инициализируем SPI2 
SPI2.setup({baud:3200000, mosi:B15, sck:B13, miso:B14}); 
//Подключаем модуль работы со сборкой силовых ключей N-fet
var X_fet = require('@amperka/X-fet').connect({
  cs: A0,  // пин Чип-селект нужен для обращения к ключам
  spi: SPI2,  // интерфейс SPI к которому подключены ключи
  qtyMod:3   // количество модулей в цепочке
});
 
 // мигаем выходом 1 на модуле 0 с интервалами 1 сек вкл и 1 сек выкл
X_fet.blink(1,0,1,1);
 // мигаем выходами 2,3 на модуле 2 с интервалами 0.5 сек вкл и 2 сек выкл
X_fet.blink([2,3],2,0.5,2); 

X_fet.turnAllOn({}||numMod||[numMods])

Включает все выходы на модуле numMod или на модулях заданных массивом [numMods], по умолчанию (без параметров) включает выходы на всех доступных модулях

// инициализируем SPI2 
SPI2.setup({baud:3200000, mosi:B15, sck:B13, miso:B14}); 
//Подключаем модуль работы со сборкой силовых ключей N-fet
var X_fet = require('@amperka/X-fet').connect({
  cs: A0,  // пин Чип-селект нужен для обращения к ключам
  spi: SPI2,  // интерфейс SPI к которому подключены ключи
  qtyMod:3   // количество модулей в цепочке
});
 
X_fet.turnAllOn(0); // включаем все выходы на модуле 0
X_fet.turnAllOn([1,2]); // включаем все выходы на модуле 1 и 2
X_fet.turnAllOn(); // включаем все выходы, на всех модулях

X_fet.turnAllOff({}||numMod||[numMods])

Выключает все выходы на модуле numMod или на модулях заданных массивом [numMods], по умолчанию (без параметров) выключает выходы на всех доступных модулях

// инициализируем SPI2 
SPI2.setup({baud:3200000, mosi:B15, sck:B13, miso:B14}); 
//Подключаем модуль работы со сборкой силовых ключей N-fet
var X_fet = require('@amperka/X-fet').connect({
  cs: A0,  // пин Чип-селект нужен для обращения к ключам
  spi: SPI2,  // интерфейс SPI к которому подключены ключи
  qtyMod:3   // количество модулей в цепочке
});
 
X_fet.turnAllOff(0); // выключаем все выходы на модуле 0
X_fet.turnAllOff([1,2]); // выключаем все выходы на модуле 1 и 2
X_fet.turnAllOff(); // выключаем все выходы, на всех модулях