Сборка силовых ключей (N-FET)
Сборка силовых ключей (N-FET) сэкономит пины управляющей платформы для управления большим количеством моторов, светодиодных лент другой постоянной нагрузкой
Видеообзор
Подключения и настройка
Модуль (N-FET) общается с управляющей платой по протоколу SPI. При подключении к Arduino или Iskra JS удобно использовать Troyka Shield.
Примеры работы
Работа с одним модулем
Создадим автоматическую подсветку лестницы. Подключим восемь отдельных кусков светодиодной ленты к сборке силовых ключей на пине A0
. Будем по очереди зажигать каждую ступень, после чего все потушим.
Код для Arduino
- singleFET.ino
// библиотека для работы с модулями по интерфейсу SPI #include <SPI.h> // библиотека для работы со сборкой силовых ключей #include <AmperkaFET.h> // пин выбора устройства на шине SPI #define PIN_CS A0 // создаём объект mosfet для работы со сборкой силовых ключей // передаём номер пина выбора устройства на шине SPI FET mosfet(PIN_CS); void setup() { // начало работы с силовыми ключами mosfet.begin(); } void loop() { for(int i = 0; i < 8; i++ ) { // включаем по очереди каждый ключ на модуле mosfet.digitalWrite(i, HIGH); // ждём пол секунды delay(500); } // выключаем все ключи на модуле mosfet.digitalWrite(ALL, LOW); delay(500); }
Код для Iskra JS
- singleFET.js
// инициализируем 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: 1 // количество модулей в цепочке }); // переменная счетчик var counter = 0; // вермя в милисекундах на переключение var time = 1000; // кол-во переключаемых выходов от 1 до 8; var pins = 8; // запускаем функцию которая переключает выходы setInterval(() => { if (counter === pins) { counter = 0; mosfet.turnAllOff(); } else { mosfet.turnOn(counter); counter++; } }, time);
После прошивки вы увидите поочерёдное включение ключей.
Работа с группой модулей
Сборка силовых ключей позволяет последовательное подключение между собой в цепочку (гирлянду). Каждое новый модуль — восемь дополнительных ключей для управления силовыми устройствами. Это позволяет управлять тоннами устройств без дополнительных пинов.
Подключим к предыдущему примеру ещё два N-FET модуля с подключёнными светодиодными лентами.
Код для Arduino
- multipleFET.ino
// библиотека для работы с модулями по интерфейсу SPI #include <SPI.h> // библиотека для работы со сборкой силовых ключей #include <AmperkaFET.h> // пин выбора сборки устройств на шине SPI #define PIN_CS A0 // создаём объект mosfet для работы со сборкой силовых ключей // передаём номер пина выбора устройств на шине SPI // и количество устройств подключённых в цепочке FET mosfet(PIN_CS, 3); void setup() { // начало работы с силовыми ключами mosfet.begin(); } void loop() { // включаем второй ключ на нулевом модуле mosfet.digitalWrite(0, 2, HIGH); // ждём пол секунды delay(500); // включаем пятый ключ на первом модуле mosfet.digitalWrite(1, 5, HIGH); // ждём пол секунды delay(500); // включаем все ключи на втором модуле mosfet.digitalWrite(2, ALL, HIGH); // ждём пол секунды delay(500); // выключаем все ключи на всех модулях mosfet.digitalWrite(ALL, ALL, LOW); // ждём пол секунды delay(500); }
Код для Iskra JS
- multipleFET.js
// инициализируем 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 // количество модулей в цепочке }); // вермя в милисекундах на переключение var time = 5000; // запускаем функцию которая переключает выходы setinterval(() => { mosfet.turnOn(2, 0); setTimeout(() => { mosfet.turnOn(5, 1); setTimeout(() => { mosfet.turnAllOn(2); setTimeout(() => { mosfet.turnAllOff(); }, time / 4); }, time / 4); }, time / 4); }, time);
После прошивки вы увидите следующую картину.
Элементы платы
Микросхема SN74HC595
Модуль выполнен на микросхеме выходного сдвигового регистра SN74HC595. Микросхема позволяет увеличивать количество выходов микроконтроллера.
Сдвиговый регистр — это преобразователь последовательного интерфейса в параллельный. Микросхема получает данные по SPI, а потом разом выставляет уровни на восьми ножках согласно полученным битам.
- Устанавливаем синхронизацию. Подаём на вход защёлки
STCP
(пин CS) низкий уровень. - При поступлении тактового импульса на вход
SHCP
(пин SCK) со входаDS
(пин MOSI) считывается первый бит и записывается в младший разряд. Со следующим тактовым импульсом бит из младшего разряда сдвигается на один разряд, а на его места записывается бит, поступивший на входDS
(пин MOSI). - Защёлкиваем регистр. Подаём на вход защёлки
STCP
(пин CS) высокий уровень.
Каскадное включение
При каскадном включении сдвиговых регистров, данные от первого регистра передаются к следующему.
Выходной канал сборки
На модуле расположено восемь выходных каналов. Каждый канал состоит из управляющего полевого транзистора IRLML0030 с N-каналом, клеммника для подключения нагрузки и световой индикации состояния ключа.
Модуль предназначен для коммутации нагрузки постоянного тока напряжением до 30 В и током до 5 А.
Нагрузка подключается своими контактами к колодкам под винт. Отрицательный контакт нагрузки подключается к контакту −
, а положительный — к контакту +
.
Все плюсовые контакты +
на выходных каналах сборки объединены в одну цепь с контактом Vin
клеммника PWR
. Cиловыми ключами коммутируется связь между контактами −
и GND
.
Если требуется коммутировать плюсовой контакт, например в автомобиле в цепи с общим минусом, воспользуйтесь сборкой силовых ключей (P-FET)
За счёт подключения силовых ключе через выходной сдвиговый регистр, модуль не поддерживает ШИМ. К сожалению вы не сможете регулировать скорость вращения двигателя или яркость свечения светодиодной ленты.
Питание нагрузки
Источник питания нагрузки подключается своими контактами к колодкам под винт клеммника PWR
. Положительный контакт источника питания подключается к контакту Vin
, а отрицательный — к контакту GND
.
Светодиодная индикация
Имя светодиода | Назначение |
---|---|
PWR | Индикатор питания модуля |
LED0–LED7 | Индикатор состояния ключей |
Понижающий регулятор питания
Понижающий регулятор напряжения L78L05AB с выходом 5 вольт, обеспечивает питание логики модуля. Максимальный выходной ток составляет 100 мА.
Troyka-контакты
На модуле выведено две группы Troyka-контактов — входная и выходная.
Входная группа контактов используется для соединения модуля с микроконтроллером:
- Сигнальный (SCK) — пин последовательного тактового сигнала. Используется для согласования скорости передачи. Подключите к пину
SCK
микроконтроллера. - Сигнальный (DI) — вход ведомого устройства. Используется для приёма данных из микроконтроллера. Подключите к пину
MOSI
микроконтроллера. - Сигнальный (CS) — выбор ведомого устройства. Подключите к любому цифровому пину микроконтроллера.
- Земля (G) — соедините с пином GND микроконтроллера.
Выходная группа используется для соединения несколько модулей в цепочку (гирлянду):
- Сигнальный (SCK) — пин последовательного тактового сигнала. Используется для согласования скорости передачи. Подключите к пину
SCK
последующего модуля. - Сигнальный (DO) — выход ведомого устройства. Используется для проброски данных через модуль. Подключите к пину
DI
последующего модуля. - Сигнальный (CS) — выбор ведомого устройства. Подключите к пину
CS
последующего модуля. - Земля (G) — соедините с пином GND последующего модуля.
Принципиальная и монтажная схемы
Габаритный чертёж
Характеристики
- Питание модуля: 3.3–5 В
- Потребляемый ток: до 50 мА
- Максимальное коммутируемое напряжение: 30 В
- Максимальный коммутируемый ток: 5 А
- Ключ: IRLML0030 (N-канал)
- Количество каналов: 8
- Габариты без ушек: 76×25 мм
- Габариты с ушками: 76×35 мм