Подключение транзистора к Ардуино

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

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

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

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