Управление оборотами двигателя переменного тока arduino

Исходный код программы

Принцип работы схемы достаточно прост – нам просто нужно подать на контакт A0 платы Arduino напряжение высокого уровня (логическую «1») когда мы хотим включить реле и напряжение низкого уровня (логический «0») когда мы хотим выключить реле. Соответственно, реле при этом будет замыкать и размыкать цепь электрической лампочки.

В программе мы будем переключать состояние контакта A0 платы Arduino с задержкой в 1 секунду:

Arduino

void loop()
{
digitalWrite(relay, HIGH);
delay(interval);
digitalWrite(relay, LOW);
delay(interval);
}

1
2
3
4
5
6
7

voidloop()

{

digitalWrite(relay,HIGH);

delay(interval);

digitalWrite(relay,LOW);

delay(interval);

}

Далее приведен полный текст программы – он тоже достаточно прост.

Arduino

#define relay A0
#define interval 1000
void setup() {
pinMode(relay, OUTPUT);
}
void loop()
{
digitalWrite(relay, HIGH);
delay(interval);
digitalWrite(relay, LOW);
delay(interval);
}

1
2
3
4
5
6
7
8
9
10
11
12

#define relay A0
#define interval 1000

voidsetup(){

pinMode(relay,OUTPUT);

}

voidloop()

{

digitalWrite(relay,HIGH);

delay(interval);

digitalWrite(relay,LOW);

delay(interval);

}

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

Для начала необходимо попытаться больше узнать про особенности двигателя. Они бывают разные и способы управления ими тоже разные.

Существует три способа регулирования частоты вращения асинхронного мотора:

  • изменением скольжения (только двигатели с фазным ротором);
  • изменением числа пар полюсов;
  • изменением частоты источника питания.

Частотник нужен для обеспечения нормального управления процессами, которые требуют регулирования. Пускатели (УПП, софт-стартеры) уменьшают ударные нагрузки от сетевого напряжения с помощью фазо-импульсного (ФИУ) способа подачи питания на электродвигатель. Словно диммер, они обеспечивают плавное нарастание тока потребления электродвигателя и препятствуют развитию КЗ в питающей сети при пуске.

После разгона двигателя от УПП, двигатель просто полностью переходит на питание от сети, так как УПП синхронизировано с сетью. Использовать ФИУ для полноценного управления электродвигателем не получится, лишь в отдельных случаях это может «прокатить».

Если ПЧ для вас дорогое удовольствие, то можно попробовать классический метод регулировки подачи воздуха – управление шиберной задвижкой от сервопривода. Здесь уже упор делается на механику. Собственно сам электродвигатель при таком способе всегда будет работать в номинале.

Подключение Mosfet к Ардуино по-хорошему

Для таких вещей люди специально придумали специальные драйверы типа этих https://voltmaster-samara.ru/catalog/drajvery-mop-i-igbt-tranzistorov

Тут уж народ издевается над МОП транзисторами как хочет

Суть в том, что драйвер нужен как раз для согласования пяти вольт с выводов ардуино (а также других микроконтроллеров) с уровнями, необходимыми для управления затворами мосфетов.

На картинке первые две схемы а) и б) не очень, так как из-за кривых рук разработчика все может задымится. Зато вторые норм.

И кстати если надо использовать ШИМ — то лучше выбрать высокоскоростной драйвер типа TC4420.

Платы Arduino

Многие устройства для начинающих на основе Arduino не требуют серьезных знаний в технике или программировании.

Arduino называют аппаратно-программной платформой. Она изначально создана компанией Arduino Software и представляет собой плату с контактами для подключения дополнительных компонентов.

Одна из плат, Arduino Uno, в руке выглядит вот так:

Плата Arduino Uno в руке

Для сравнения — вот такой размер другой платы Ардуино, которая называется Nano:

Плата Arduino Nano в руке

Ниже на фото я привел пример того как выглядит простое собранное устройство на основе платы Уно:

На фото сразу можно заметить главное достоинство платы — нам не нужно было ничего припаивать и мы использовали минимум комплектующих. Таким же образом можно собрать множество интереснейших устройств.

Технические характеристики зависят от модели используемого микроконтроллера, а с внешним видом двух самых популярных моделей вы уже познакомились — это Arduino Uno и Nano.

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

Программируемый микроконтроллер 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=I2R, то есть 52·0,25 = 25·0,25=6,25 Вт.

При силе тока в 8 А потеря мощности будет составлять уже 35 Вт.

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

Программируемый микроконтроллер 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 Вт.

Мнения читателей

Нет комментариев. Ваш комментарий будет первый.

Вы можете оставить свой комментарий, мнение или вопрос по приведенному выше материалу:

Источник

Расшифровка и определение ШИМ

Модуляция ширины импульса означает, что ширина импульса возникает строго в прямоугольной волне.

Это улучшает управление двигателем. Вместо чистого сигнала постоянного тока к двигателю используется серия импульсов. Они могут находиться на максимальном напряжении, но только на долю секунды. Выполнение повторных действий приведет к тому, что двигатель начнет вращаться. Это позволит более комфортно управлять скоростью. Простое применение сигнала постоянного тока не приведет к преодолению трения двигателя и передач, наоборот, запуск будет обрывистый с низкой скоростью.

Увеличивая частоту импульсов ШИМа на Ардуино, можно выполнять операции на высокой скорости.

Декодер создает этот сигнал для управления двигателем. Это та же концепция, что и функции мощности импульса, находящиеся на блоках питания постоянного тока.

Рассмотрим основные преимущества использования ШИМ Ардуино:

  1. Эффективность электропитания: индукция обмоток ротора будет усреднять ток (индукторы сопротивляются изменению тока). Транзисторы имеют низкий импеданс при низком падении напряжения и рассеивании мощности. Резистор рассеивает большую мощность (I2R) в виде тепла.
  2. Управление скоростью: двигатель будет видеть источник с низким импедансом, даже если он постоянно переключается между высоким и низким напряжением. Результат очевиден – двигатель ускоряется. Серийное сопротивление приведет к тому, что двигатель будет испытывать малое напряжение, поэтому легко остановится в нужный момент.
  3. Цепь управления: для цифровой электроники (например, микроконтроллера ) очень легко включать или выключать напряжение с помощью транзисторов. Аналоговый выход (с электронным или механическим управлением) требует большего количества компонентов и увеличивает рассеивание мощности. Это будет более дорогостоящим вариантом, с точки зрения электроники и требований к электропитанию.

Создать широтно-импульсный модулятор можно на esp8266 шим, на Ардуино УНО и Ардуино Нано шим. То есть для конструирования подойдет любая модель описываемого микроконтроллера.

You might also like:

  • Arduino hx711 tutorial
  • Arduino magnetic switch
  • Best Arduino Kits
  • gifts for engineering students
  • gifts for engineers
  • mpu6050 Arduino projects
  • Current sensor Arduino
  • Soil Moisture Sensor With Arduino
  • Arduino Count up Timer Using the Nokia 5110 LCD
  • Arduino Yun: Integrating or Juxtaposing Arduino with Linux
  • Arduino Projects: Line Follower Robot
  • Arduino RFID Projects
  • Which Arduino Should You Buy
  • What Can You Do With Arduino Boards?
  • Great Alternatives to the Arduino Microcontroller
  • Arduino Projects: Color Sensor
  • Arduino IDE Alternatives
  • Arduino Mega vs. Uno
  • Arduino Projects: Arduino LCD Display
  • Read Arduino Rotary Encoders
  • A Selection of the Best Arduino Simulators
  • Arduino Projects: IR Receiver
  • Arduino Light Sensor Project
  • Arduino Projects: Arduino Decibel Meter
  • Arduino Stopwatch Project
  • Arduino Bluetooth RC Car Project
  • Arduino Temperature Logger Project
  • Arduino Projects: Arduino 7 Segment Display
  • Arduino Projects: Clap ON Clap OFF Light
  • Arduino Relay Project
  • Install a Library Onto the Arduino IDE
  • Arduino Projects: Rainfall Detector
  • Arduino Projects: RGB LED Arduino
  • Arduino Stepper Motor Project
  • Arduino Projects: Arduino DC Motor Control
  • The Top Affordable Arduino Robot Kit
  • Arduino 3D Printed Case
  • Arduino Projects: Asynchronous LEDs Blink
  • Arduino Projects: Ultrasonic Distance Sensor
  • Arduino Projects: LED – 4X4X4 LED Cube
  • Arduino Car Projects: Build an Obstacle Avoiding Robot With Less Than $30
  • Arduino Projects: Servo Potentiometer Control
  • Arduino LED Project: Knight Rider
  • Arduino Projects: PIR Motion Sensor
  • The Difference between Arduino and Raspberry Pi
  • Top 9 Books Every Engineer Should Read
  • Top Used Sensors for Arduino
  • First Hand on the Arduino Uno Board

Контроллеры бесколлекторных моторов (ESC регуляторы)

Рис. 3. ESC регуляторы

Задача контроллера состоит в том, что бы передать энергию постоянного тока от аккумулятора к трехфазному бесколлекторному мотору. Для передачи энергии контроллер использует MOSFETы — силовые ключи, которые могут открываться и закрываться за долю секунды. Если мощности одного ключа недостаточно, используется несколько ключей, включенных параллельно. Попеременное включение/выключение фаз поддерживает вращение мотора. За переключением фаз следит микроконтроллер регулятора. Функциональная схема ESC регулятора показана на рис. 4

Рис. 4. Функциональная схема ESC регулятора

Как подключить транзистор к Ардуино

Для этого занятия нам потребуется:

Подключить мотор постоянного тока напрямую к цифровым или аналоговым портам Arduino не получится. Это обусловлено тем, что пины на плате Ардуино не способны выдавать ток более 40 мА. При этом мотору постоянного тока, в зависимости от нагрузки, необходимо сотни миллиампер. Потому и возникает потребность управления электрической цепью высокого напряжения транзистором или Motor Shield L293D.

Схема подключения мотора постоянного тока к Ардуино

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

Скетч. Управление мотором через транзистор

Если вы заметили, то это скетч из занятия — Включение светодиода на Ардуино

С точки зрения микропроцессора абсолютно не важно, что подключено к Pin13 — светодиод, транзистор или драйвер светодиодов для Светового меча на Ардуино

Обратите внимание на то, что резистор R1 подтягивает базу транзистора к земле, а резистор R2 служит для защиты порта микроконтроллера от перегрузки

Скетч. Управление мотором от датчика

Скетч управления двигателем постоянного тока на Ардуино можно написать по-другому. Добавим в схему фоторезистор и сделаем автоматическое включение мотора при снижении уровня освещенности в комнате. Можно также использовать датчик уровня жидкости или любой другой датчик. В скетче мы используем операторы if и else для управлением (включением/выключением) мотора постоянного тока.

Управление двигателем постоянного тока на Arduino UNO

Устройство и принцип работы транзистора

Транзистором называется полупроводниковый прибор, предназначенный для усиления и генерирования электрических колебаний. Транзисторы являются ключами (кнопками) в сетях с постоянным током. Биполярные транзисторы могут управлять электрической цепью до 50 В, полевые транзисторы могут управлять приборами до 100 В (при напряжении на затворе 5 В). В сетях с переменным током использую реле.

Фото. Устройство полевого и биполярного транзистора

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

Транзисторы являются основой для построения микросхем логики, памяти и микропроцессоров компьютеров. Транзистор — это электронный элемент из полупроводникового материала, обычно с тремя выводами, позволяющий с помощью входного сигнала управлять током высокого напряжения. Использование транзистора — это наиболее простой способ подключения к Ардуино мотора постоянного тока.

Управление двигателем на Ардуино

Коллекторный моторчик может быть рассчитан на разное напряжения питания. Если двигатель работает от 3-5 Вольт, то можно моторчик подключать напрямую к плате Ардуино. Моторы для машинки с блютуз управлением, которые идут в комплекте с редукторами и колесами рассчитаны уже на 6 Вольт и более, поэтому ими следует управлять через полевой (биполярный) транзистор или через драйвер L298N.

Принцип работы и устройство мотора постоянного тока

На схеме показано устройство моторчика постоянного тока и принцип его работы. Как видите, для того, чтобы ротор двигателя начал крутиться к нему необходимо подключить питание. При смене полярности питания, ротор начнет крутиться в обратную сторону. Драйвер двигателей L298N позволяет инвертировать направление вращения мотора fa 130, поэтому его удобнее использовать в своих проектах.

Подключение мотора к Arduino

Как уже было сказано выше, ардуино не может обеспечить мотор необходимым током и напряжением. В таких случаях используются транзисторы.

Транзистор это радиоэлектронный компонент из полупроводникового материала способный от небольшого входного сигнала управлять значительным током в выходной цепи, что позволяет его использовать для усиления, генерирования, коммутации и преобразования электрических сигналов. Обычно у транзисторов 3 вывода: база, эмиттер и коллектор. Алгоритм действия можно сформулировать так: пропустить ток от коллектора к эмиттеру в зависимости от сигнала на базе. Транзисторы бывают разных типов и номиналов. Об этом можно подробнее почитать на википедии.

Будьте внимательны при выборе транзисторов для своих проектов. Некоторые рассчитаны на пропуск большого напряжения, или большого тока. Так же многие транзисторы не откроются от 5 вольт на базе. Всегда проверяйте характеристики транзисторов перед покупкой в datasheet

Так же обратите внимание, что для управления переменным током используются мосфет транзисторы

Теперь давайте подключим мотор к ардуино по следующей схеме:


Подключение мотора к ардуино

Как всегда ничего сложного. Главное не перепутать выводы транзистора

Обратите внимание на резистор через который ардуино подключена к базе. Это резистор на 1 кОм и нужен он для того что бы обезопасить нашу ардуинку

В видео к схеме добавлены диод и конденсатор, но они не обязательны. Так же можно добавить резистор на 10 — 100 кОм между эмиттером и коллектором для стабильности работы нашей схемы. Так же не забудьте, что земля на всех уровнях напряжения должна быть объединена. И взглянем на наш код:

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

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

Добавим в нашу схему инфракрасный дальномер. Просто потому, что мы можем

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

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

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

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

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

Стенд для пайки со светодиодной подсветкой

Материал: АБС + металл + акриловые линзы. Светодиодная подсветка…

Подробнее

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

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

Выход 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).

3 Скетч для управления коллекторным двигателем

Напишем скетч для управления коллекторным двигателем. Объявим две константы для ножек, управляющих двигателем, и одну переменную для хранения значения скорости. Будем передавать в последовательный порт значения переменной Speed
и менять таким образом скорость (значением переменной) и направление вращения двигателя (знаком числа).

Int Speed = 0;
const int IA1 = 5; // Управляющий вывод 1
const int IA2 = 6; // Управляющий вывод 2
void setup() {

pinMode(IA1, OUTPUT);
pinMode(IA2, OUTPUT);
Serial.begin(9600);
}
void loop() {

if (Serial.available() > 0) {
String s = Serial.readString();
Speed = s.toInt(); // преобразуем считанную строку в число
}
if (Speed > 0) { // если число положительное, вращаем в одну сторону
analogWrite(IA1, Speed);
analogWrite(IA2, LOW);
}
else { // иначе вращаем ротор в другую сторону
analogWrite(IA1, LOW);
analogWrite(IA2, -Speed);
}
}

Максимальная скорость вращения — при наибольшем значении напряжения, которое может выдать драйвер двигателя. Мы можем управлять скоростью вращения, подавая напряжения в диапазоне от 0 до 5 Вольт. Так как мы используем цифровые ножки с ШИМ, напряжение на них регулируется командой analogWtirte(pin, value)
, где pin
— номер вывода, на котором мы хотим задать напряжение, а аргумент value
— коэффициент, пропорциональный значению напряжения, принимающий значения в диапазоне от 0 (напряжение на выводе равно нулю) до 255 (напряжение на выводе равно 5 В).