Управление двигателя постоянного тока с помощью транзистора и Arduino

В этой короткой статье разберем вопрос о том, как подключить и управлять двигателем постоянного тока с использованием транзистора и Arduino.

Одним из способов управления небольшим двигателем постоянного тока – это использовать транзистор. Двигатель потребляет больше тока, чем может дать цифровой выход Arduino и если найдется храбрец, который захочет подключить двигатель непосредственно к одному из выходов  Arduino, он имеет хорошие шансы на повреждение микроконтроллера. Исключением здесь являются миниатюрные двигатели с малым потреблением тока.  Сегодня же мы рассмотрим управление более мощным двигателем.

В нашем случае хорошей идеей будет использовать в качестве  коммутатора транзистор, например 2N2222. Транзистор способен управлять бОльшим током, используя при этом малый ток цифрового выхода Arduino.

upravlenie-dvigatelya-postoyannogo-toka-s-pomoshhyu-tranzistora-i-arduino-1

Транзистор имеет три вывода. Основная часть тока протекает через коллектор (К) - эмиттер (Э), но только в том случае, если небольшая часть тока протекает через его базу (Б). Этот небольшой ток поступает с цифрового выхода Arduino в качестве управляющего сигнала.

 

upravlenie-dvigatelya-postoyannogo-toka-s-pomoshhyu-tranzistora-i-arduino-2

Для построения схемы нам потребуются следующие детали:

  • Макетная плата
  • Arduino Uno (может быть любая)
  • Двигатель постоянного тока
  • Транзистор 2N2222
  • Ограничивающий резистор 1кОм (с цветовой маркировкой: коричневый черный красный)
  • Выпрямительный диод 1N4007 (можно также использовать 1N4148)
  • Соединительные провода

 

upravlenie-dvigatelya-postoyannogo-toka-s-pomoshhyu-tranzistora-i-arduino-3

Выход Arduino D3 соединен через резистор с базой транзистора. Предназначение резистора - ограничить ток, протекающий через базу транзистора.

К выводам двигателя в обратном направлении подключен диод, задачей которого является гашение всплеска самоиндукции, возникающий в момент выключения двигателя. Если этого не сделать, то высока вероятность того, что мы можем повредить транзистор или Arduino.

Для управления двигателем мы используем простой код, задачей которого будет установка такой скорости, которую мы укажем в Serial мониторе:

int motorPin = 3;
void setup()
{
pinMode(motorPin, OUTPUT);
Serial.begin(9600);
while (! Serial);
Serial.println("Speed 0 to 255");
}
void loop()
{
if (Serial.available())
{
int speed = Serial.parseInt();
if (speed >= 0 && speed <= 255)
{
analogWrite(motorPin, speed);
}
}
}

Не следует забывать, что мы можем ввести значение только в диапазоне 0-255. Команда Serial.parseInt() считывает целое число типа int и сохраняет ее в программе как “Speed”. Если вы введете число, большее 255, то программа ничего не выполнит, потому что это число выше нашего диапазона.

Теперь мы знаем, что управление двигателем постоянного тока можно решить двумя способами. Мы можем использовать микросхему драйвер двигателя L293D (если планируется использование двигателя с большим потреблением тока) или использовать NPN транзистор (в данном случае, 2N2222).

редактор

Добавить комментарий

Ваш электронный адрес не будет опубликован.

*