Подключение мосфета к Ардуино
Программируемый микроконтроллер Arduino идеально подходит для создания нестандартных устройств. А имеющиеся в избытке готовые модули, расширения и скетчи значительно облегчают задачу.
Однако, всегда находятся проекты, в которых к Arduino необходимо подключить мощный узел или устройство. Микроконтроллер будет отвечать за логику работы, а узел или устройство – выполнять простую работу.
С одной стороны – ничего сложного, с другой – Arduino обеспечивает на выходе только небольшой ток и напряжение (U – не более 5В, I – 40 мА). Значит. Мощную нагрузку нужно подключать через специальный «усилитель». В качестве последнего могут выступать специализированные транзисторы Дарлинтона, биполярные, полевые (мосфеты), реле (механические или на оптопаре) и т.п.
Мы уже подробно рассмотрели основные варианты подключения нагрузки к Ардуино. Здесь же детально осветим вариант с полевым транзистором.
Нагрузка через мосфет к Ардуино — схема
В первую очередь следует определиться с тем, какие устройства или типы нагрузок лучше всего подключать через полевики:
- Двигатели (шаговые или постоянного тока);
- Нагревательные приборы;
- Мощные лампы;
- Соленоиды;
- И т.п.
Не стоит через мосфеты подключать «быстрые» приборы (работающие на высоких частотах или часто включаемые/отключаемые) или сеть с переменным током (для этой задачи лучше всего использовать реле).
Во-первых, полевой транзистор будет греться, во-вторых, его реакция определённо «медленная» для ВЧ техники.
Типовая схема включения нагрузки будет иметь такой вид.

Рис. 1. Типовая схема включения нагрузки
Или такой (для лучшего понимания принципа работы).

Рис. 2. Вариант схемы включения нагрузки
Резистор 3к на затворе – это ограничитель (подстроечное сопротивление). А 10к – это своего рода предохранитель от перехода мосфета в Z-режим (исключается эффект «дребезжания» на малых токах управления).
Если нагрузка обладает большой индуктивностью (актуально, например, для двигателей), то следует использовать дополнительный диод (несмотря на то, что в большинстве мосфетов он уже встроен, не помещает дополнительная защита).
Схема принимает следующий вид.

Рис. 3. Схема устройства
На случай исключения обратного пробоя и выхода из строя платы микроконтроллера, можно реализовать гальванический разрыв цепи через оптрон.

Рис. 4. Гальванический разрыв цепи через оптрон
Если логика работы предполагает быструю реакцию мосфета на сигналы с ШИМ-пина (PWM), то выходной сигнал лучше всего предварительно усилить биполярными транзисторами, например, так.

Рис. 5. Вариант схемы устройства
На случай острой необходимости управления сетью с переменным током 220В с ШИМ-выхода можно воспользоваться следующей схемой.

Рис. 6. Вариант схемы устройства
Она подойдёт на роль «автоматического диммера» с продвинутыми настройками.
При работе с полевыми транзисторами стоит проявлять особую осторожность, они очень боятся статического электричества. Поэтому необходимо предпринять все меры, чтобы снять статический заряд в процессе работ.
Как рассчитать потери мощности на мосфете
Для этого понадобится сопроводительная документация (даташит) к выбранному полевому транзистору. Здесь стоит отметить, что подбирать мосфет необходимо из серий, помеченных как «Logic Level», они разрабатываются специально для работы с микроконтроллерами.
Из даташита необходимо уточнить график зависимости параметров транзистора, например, для IRF630.

Рис. 7. График зависимости параметров транзистора
При напряжении на затворе в 5 Вольт (см. линия в центре с подписью 5V) и токе в цепи (вертикальная ось координат) 5 А, падение напряжения составит около 2В (горизонтальная ось координат).
То есть сопротивление транзистора можно рассчитать по закону Ома как 2/8=0,25 (Ом).
Тогда мощность будет считаться как P=I 2 R, то есть 5 2 ·0,25 = 25·0,25=6,25 Вт.
При силе тока в 8 А потеря мощности будет составлять уже 35 Вт.
Подключение мосфета к Ардуино с мотором

Подключение полевого / мосфет транзистора к Arduino — рассмотрим устройство и применение транзисторов в электронной автоматике. Запрограммируем управление двигателем постоянного тока с помощью транзистора на основе показаний датчика освещенности (фоторезистора). В программе для платы будем использовать условные операторы if … else, которые часто используется в языке программирования C++.
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- n-p-n / p-n-p транзистор
- щеточный мотор
- резисторы
- макетная плата
- коннекторы
- Подключение модуля MOSFET IRF520N к Ардуино
- Подключение твердотельного реле к Ардуино
- Подключение электромагнитного реле к Ардуино
Транзистор — это полупроводниковый прибор, предназначенный для усиления и генерации электрических колебаний. Транзисторы являются логическими переключателями в цепях постоянного тока. Биполярные транзисторы могут питать цепи до 50 Вольт, а полевые транзисторы до 100 Вольт (при напряжении на затворе 5 В). В сетях переменного тока 220 В используются модули реле — твердотельные реле или электромагнитные.
Транзистор n-p-n / p-n-p распиновка, принцип работы

Важные характеристики полевого транзистора
- Максимальное напряжение сток-исток
- Максимальный ток через сток
- Сопротивление сток-исток
- Рассеиваемая мощность
Когда на базе транзистора нет напряжения, эмиттерный и коллекторный переходы находятся в равновесии, через них не течет ток, и они равны нулю. Таким образом, подавая напряжение 5 Вольт на базу биполярного транзистора с платы Arduino, мы можем коммутировать электрические цепи до 50 вольт. Сегодня этот полупроводниковый элемент присутствует практически во всех устройствах (телефон, компьютер и т.д.).
Как подключить mosfet транзистор к Ардуино

Двигатель постоянного тока не может быть подключен непосредственно к цифровым или аналоговым портам Arduino. Это связано с тем, что контакты на плате Arduino не способны выдавать более 40 мА. Двигателю, в зависимости от характеристик, требуются сотни миллиампер. Поэтому необходимо управлять высоковольтной электрической цепью с помощью реле, mosfet модулем, Motor Shield L293D или mosfet транзистором.
Скетч управление mosfet транзистором от Ардуино
#define MTR 11 void setup() < pinMode(MTR, OUTPUT); >void loop()
Как подключить полевой транзистор к Ардуино

Программа для управления транзистором и мотором от Ардуино может быть написана по-другому. Мы добавляем в схему фоторезистор и заставляем двигатель включаться автоматически при снижении уровня освещенности в комнате. Можно также использовать датчик уровня жидкости, сенсор влажности почвы или любой другой датчик. В коде используется операторы if и else для управления включением двигателя постоянного тока.
Скетч управление плевым транзистором от Ардуино
#define MTR 11 #define LDR A1 unsigned int value; void setup() < Serial.begin(9600); pinMode(MTR, OUTPUT); pinMode(LDR, INPUT); >void loop()
Заключение. Транзисторы являются основой для построения логики, памяти и микропроцессорных чипов в компьютерах. Транзистор pnp — это электронный элемент из полупроводникового материала, обычно с тремя выводами, который позволяет входному сигналу управлять током высокого напряжения. Использование npn-транзистора — самый простой способ подключения двигателя постоянного тока к плате Ардуино.
Управление мотором постоянного тока с помощью одного транзистора
В данной статье рассматривается наиболее простой способ подключения мотора постоянного тока к Arduino.
Введение
Моторы постоянного тока нельзя подключать напрямую к Arduino. Это обусловлено тем, что пины не способны выдавать ток более 40 мА. Мотору же необходимы несколько сотен миллиампер, в зависимости от нагрузки, поэтому возникает потребность увеличения мощности. Делается это, как-правило, с помощью транзисторов.
В статье «Транзисторы: принцип работы, схема включения, чем отличаются биполярные и полевые» можно ознакомиться с основными типами транзисторов и их принципами работы.
Также рекомендуется посмотреть: Видеоуроки по Arduino, 5-я серия — Моторы и транзисторы. В данном уроке Джереми Блюм рассказывает о подключении мотора постоянного тока к Arduino через биполярный транзистор.
Необходимые компоненты
Мы рассмотрим вариант взаимодействия с полевым транзистором. Принципы подключения мотора будут разобраны на конкретном железе: DC-мотор, плата Arduino Uno, N-канальный полевой транзистор, резистор на 10 кОм (R1), резистор на 220 Ом (R2).
Вы же в своих экспериментах вольны использовать то, что есть в наличии. Важны лишь условия:
Максимальный ток потребления мотора (ток при блокировке) не должен превышать максимальный ток стока полевого транзистора.
Затвор транзистора должен отпираться при напряжении 5 В.
Транзистор должен обладать встроенным диодом обратной цепи (flyback-диод).
Схема подключения
По сути, обмотка мотора представляет собой катушку индуктивности. В момент подачи напряжения возникнет обратная электродвижущая сила, которая может вывести из строя транзистор. Flyback-диод устанавливается в обратном направлении и предотвращает утечку тока с мотора на транзистор. Поэтому, если в транзисторе нет flyback-диода, его необходимо установить дополнительно: анод на исток, катод на сток.
Транзистор IRF530N достаточно мощный и поставляется в корпусе TO-220. Ниже приведена его распиновка.
В данной схеме транзистор будет работать в ключевом режиме: по одной команде от Arduino (установка уровня HIGH на затворе) транзистор будет подключать мотор к источнику питания (отпираться), по другой команде (установка уровня LOW на затворе) — отключать мотор от источника питания.
Резистор R1 подтягивает к земле затвор транзистора. Номинал не принципиален — можно использовать любые резисторы в диапазоне от 1 до 10 кОм. Резистор R2 служит для защиты пина микроконтроллера. Диапазон примерно от 10 до 500 Ом.
Чтобы запитать данную схему, нужно подключить к Arduino внешний источник питания на 6–9 В, либо подать питание непосредственно на макетную плату (синяя шина — минус, красная шина — плюс).
Программинг
Для наибольшей простоты воспользуемся, пожалуй, самым известным скетчем из готовых примеров — Blink.
int led = 13; void setup() { // Инициализация цифрового пина 13 на вывод pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); // Включение светодиода и мотора delay(1000); // Задержка на 1 секунду digitalWrite(led, LOW); // Выключение светодиода и мотора delay(1000); // Задержка на 1 секунду }
Посмотрим, что получилось.
Цифровой пин 13 раз в секунду меняет своё состояние. Когда на выходе устанавливается значение HIGH — загорается светодиод и начинает вращаться мотор. Когда устанавливается LOW — светодиод гаснет, а мотор останавливается.
Результаты
Вы получили возможность подключать к выводам Arduino мощные устройства, в частности, моторы постоянного тока.
Использование ШИМ для регулировки скорости мотора
Если мотором управлять ничуть не сложнее, чем светодиодом, то, наверное, можно изменять яркость скорость вращения мотора точно так же, как при работе со светодиодами? Именно так! Со стороны Arduino абсолютно неважно, с чем мы имеем дело.
Как вы уже, наверное, могли догадаться, для изменения скорости вращения мотора нам понадобится скетч Fade.
int led = 9; // Пин, к которому подключён затвор транзистора int brightness = 0; // Теперь эта переменная отвечает за скорость вращения int fadeAmount = 5; // Шаг изменения скорости void setup() { // Настраиваем цифровой пин 9 на вывод pinMode(led, OUTPUT); } void loop() // Пауза 30 миллисекунд delay(30); }
Схема подключения
Чтобы использовать возможности функции analogWrite(..) , нам придётся перейти на один из пинов (3/5/6/9/10/11), поддерживающих аппаратный ШИМ. Поскольку по умолчанию в скетче Fade задействован 9-й пин, остановим свой выбор на нём.
Результат
Вы получили возможность плавно изменять скорость вращения мотора, используя аппаратный ШИМ-сигнал с платы Arduino.
На этом наша статья подходит к завершению. Теперь вы смело можете использовать моторы постоянного тока в своих проектах!
Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Noncommercial-Share Alike 4.0 International
Производные работы должны содержать ссылку на http://wiki.amperka.ru, как на первоисточник, непосредственно перед содержимым работы.
Вики работает на суперском движке DokuWiki.
робототехника/подключение-мотора-через-транзистор.txt · Последние изменения: 2022/06/27 10:03 — mik
Инструменты страницы
- Показать исходный текст
- История страницы
- Ссылки сюда
- Наверх
Arduino и MOSFET транзистор
Полевой транзистор, он же мосфет (MOSFET) – электронный компонент, позволяющий при помощи небольшого напряжения и тока (с пина микроконтроллера) управлять мощной нагрузкой постоянного то ка, которую пин МК сам питать не в состоянии: моторы, клапаны, мощные светодиоды и так далее. Более подробно про мосфеты написано в уроке по управлению нагрузкой. В уроке идёт мосфет IRF740, N-канального типа.
Подключение (N-канальный)
Управляющий пин мосфета (затвор) подключается к любому цифровому пину МК через токоограничивающий резистор на 100-200 Ом (в наборе идут резисторы 220 ом), что защитит пин от слишком большого тока. Также он подтягивается к GND резистором на 10 кОм, чтобы транзистор автоматически закрылся при отсутствии сигнала с МК. “Плюс” источника питания подключается напрямую к нагрузке, GND соединяется с GND микроконтроллера. GND нагрузки подключается на выход (сток) мосфета:

Рассмотрим возможное подключение мотора из PRO версии набора, питание от внешнего 5V адаптера:

Во время коммутации индуктивной нагрузки (моторы, электромагниты, соленоиды и прочие “катушки”) происходит выброс напряжения, который может повредить транзистор. Для защиты от него мы поставили диод (есть в наборе) параллельно мотору, диод примет весь удар на себя.
Примеры
Для управления транзистором достаточно подать с пина сигнал:
- HIGH (открыть транзистор, включить нагрузку)
- LOW (закрыть транзистор, выключить нагрузку)
- ШИМ сигнал для плавного управления мощностью на нагрузке
Обычный “блинк”, но через транзистор. Нагрузка будет включаться и выключаться
#define MOS_PIN 3 void setup() < // пин реле как выход pinMode(MOS_PIN, OUTPUT); >void loop() < // "мигаем" digitalWrite(MOS_PIN, HIGH); delay(1000); digitalWrite(MOS_PIN, LOW); delay(1000); >
Домашнее задание
- Изучить урок по светодиодам и попробовать примеры из него на мосфете
Связанные уроки
- Управление мощной нагрузкой
- Цифровые пины
- ШИМ сигнал