СОДЕРЖАНИЕ ►
Подключение полевого / биполярного транзистора к Arduino — рассмотрим на этом занятии устройство и применение транзисторов в электронной автоматике. Запрограммируем работу мотора постоянного тока в зависимости от показаний датчика влаги или фоторезистора. Вспомним использование операторов if, else и рассмотрим тип данных — unsigned int, который часто используется в языке C++.
Устройство и принцип работы транзистора
Транзистором называется полупроводниковый прибор, предназначенный для усиления и генерирования электрических колебаний. Транзисторы являются ключами (кнопками) в сетях с постоянным током. Биполярные транзисторы могут управлять электрической цепью до 50 В, полевые транзисторы могут управлять приборами до 100 В (при напряжении на затворе 5 В). В сетях с переменным током используют реле.

При отсутствии напряжения на базе (затворе) транзистора, эмиттерный и коллекторный переход находятся в равновесии, токи через них не проходят и равны нулю. Таким образом, подавая на базу биполярного транзистора напряжение в 5 В, мы можем включать электрические цепи до 50 Вольт. Сегодня этот полупроводниковый элемент встречается почти в любом устройстве (в телефоне, компьютере и т.д.).
Подключение мосфет транзистора к Ардуино
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega;
- макетная плата;
- биполярный транзистор;
- мотор постоянного тока;
- резисторы от 1 до 10 кОм;
- провода «папа-папа» и «папа-мама».
Подключить мотор постоянного тока напрямую к цифровым или аналоговым портам Arduino не получится. Это обусловлено тем, что пины на плате Ардуино не способны выдавать ток более 40 мА. При этом мотору постоянного тока, в зависимости от нагрузки, необходимо сотни миллиампер. Потому и возникает потребность управления электрической цепью высокого напряжения транзистором или Motor Shield L293D.

Соберите электрическую цепь, как на рисунке выше. Если присмотреться к сборке на макетной плате, то вы заметите, что транзистор играет роль кнопки. Если кнопка замыкает электрическую цепь при нажатии на толкатель, то транзистор начинает пропускать ток при подаче напряжения на базу. Таким образом, мы можем сделать автоматическое или полуавтоматическое управление мотором на Ардуино.
Управление мотором через мосфет транзистор Arduino
void setup() { pinMode(11, OUTPUT); // объявляем пин 11 как выход } void loop() { digitalWrite(11, HIGH); // зажигаем светодиод delay(2000); // ждем 2 секунды digitalWrite(11, LOW); // выключаем светодиод delay(2000); // ждем 2 секунды }
Если вы заметили, то это скетч из занятия — Включение светодиода на Ардуино. С точки зрения микропроцессора абсолютно не важно, что подключено к Pin11 — светодиод, транзистор или драйвер светодиодов для Светового меча на Ардуино. Обратите внимание на то, что резистор R1 подтягивает базу транзистора к земле, а резистор R2 служит для защиты порта микроконтроллера от перегрузки.
Управление мотором через полевой транзистор Arduino

Скетч управления двигателем постоянного тока на Ардуино можно написать по-другому. Добавим в схему фоторезистор и сделаем автоматическое включение мотора при снижении уровня освещенности в комнате. Можно также использовать датчик уровня жидкости или любой другой датчик. В скетче мы используем операторы if и else для управления (включения/выключения) нагрузки от Ардуино.
// Присваиваем имя для аналогового входа A1 #define sensor A1 // Присваиваем имя для значений аналогового входа A1 // unsigned int принимает только положительные числа unsigned int value = 0; void setup() { // Пин 11 с транзистором будет выходом (англ. «output») pinMode(11, OUTPUT); pinMode(sensor, INPUT); } void loop() { // Считываем значение с фоторезистора на аналоговом входе A1 value = analogRead(sensor); // Если значение value меньше 500, включаем транзистор if (value<500) digitalWrite(11,HIGH); // В противном случае выключаем транзистор else digitalWrite(11, LOW); }
Пояснения к коду:
- в первой строчке программы мы присвоили имя
sensorдля аналогового входа A1 с помощью директивы #define Arduino; - тип данных
unsigned intуказывает, что значениеvalueможет принимать только положительное целое число, а начальное значениеvalueравно нулю; - условный оператор
ifпозволяет определить действие при истинном условии. Операторelseпозволяет определить действие, когда истинное условие ложно.
Заключение. Транзисторы являются основой для построения микросхем логики, памяти и микропроцессоров компьютеров. Транзистор — это электронный элемент из полупроводникового материала, обычно с тремя выводами, позволяющий с помощью входного сигнала управлять током высокого напряжения. Использование транзистора — это наиболее простой способ подключения к Ардуино мотора постоянного тока.










В схеме подключения мотора к Ардуино перепутана полярность питания, либо тип биполярного транзистора. Транзистор использован в качестве эмиттерного повторителя с сопротивлением в цепи коллектора. Коллектор должен быть подключен к плюсу питания, нагрузка в цепи эмиттера — к земле. Здесь все наоборот.
И ещё (на картинке с макетной платой) к базе ничего не подключено
Спасибо. Не заметили, что транзистор не подключен к Ардуино. Исправили схему подключения
А через тиристор не проще ли? Я попробовал, у меня получилось. При этом мотор питался от внешнего источника, что снимает ограничение по его мощности.
Можете отправить схиму с тиристором?
А почему нельзя просто напрямую подключить мотор и регулировать его подачей тока, минуя транзистор?
Потому что к пинам Ардуино нельзя подключать ничего мощнее светодиода, при подключении мотора пин может просто выгореть
В статье пишет про управление mosfet-ом, а среди компонентов указывается биполярный транзистор. потом ещё и про какой-то резистор R2 написали, когда его даже на схеме нет.