Эту простая схема опробована много раз. Её можно использовать, чтобы управлять двигателями или катушками индуктивности. Здесь сфокусируемся именно на инструкции для создания схемы управления мотором, так что в новых статьях всегда можно будет на нее сослаться. Также мы рассмотрим примерный алгоритм, чтобы показать, как использовать схему.
Шаг 1: ЗАПЧАСТИ
Список довольно короток:
- Составной транзистор Дарлингтона TIP120 (npn — схема)
- Диод 1N4001
- Беспаечная макетная плата
- Провода
- Резистор 1K (Вам будет нужно 2, если Вы захотите добавить дополнительный светодиод, об этом чуть позже позже)
- Двигатель постоянного тока (Выбирая двигатель для этого проекта, обратите внимание на то, что транзистор TIP120 выдерживает постоянно 5 А и максимум 8 А).
- Батарея с достаточной мощностью для запуска Вашего мотора и достаточным количеством напряжения, чтобы запитать контроллер (7-12В).
- Arduino или любой контроллер, обеспечивающий ШИМ.
Шаг 2: ПРИНЦИП ДЕЙСТВИЯ
ШИМ — широтно импульсная модуляция. Это означает, что мы можем с большой частотой включать и выключать нагрузку (импульсы), контроллировать как долго нагрузка включена и выключена (модуляция).
То есть, Вы можете модулировать импульсы от полного выключения до работы на полную мощность. Если полупериоды равны, то двигатель будет работать на 50% от его максимальной скорости.
Транзистор использует низкое напряжение / слабый ток ШИМ сигнала и использует его, для управления более высоким напряжением и током, которые идут с батареи на двигатель. В данном случае он работает, как усилитель.
Преимущество использования изменения скорости двигателя вместо изменения напряжения состоит в том, что Вы поддерживаете постоянный вращающий момент двигателя, то есть он фиксирован, так как в любой момент времени двигатель либо полностью выключен, либо работает на полную.
Шаг 3: СБОРКА
Схему можно посмотреть на fritzing:
http://fritzing .org/projects/super-simple-motor-co…
(Ищите секцию «Загрузки» в нижнем правом углу.)
Также есть пример кода:
int pwmPin = 3; //pwm for motor int maxSpeed = 255; //pwm pins on arduinos range from 0 (fully off) to 255 (fully on) int speed = 0; void setup() { pinMode(pwmPin, OUTPUT); } void loop() { //speed up to max speed for(speed = 0; speed <= maxSpeed; speed += 1) { analogWrite(pwmPin, speed); delay(50); } //slow down to a full stop for(speed = maxSpeed; speed>=0; speed-=1) { analogWrite(pwmPin, speed); delay(50); } }
Шаг 4: ДОПОЛНИТЕЛЬНО
СВЕТОДИОД:
Вы можете дополнительно добавить светодиод. Сигнал ШИМ будет регулировать яркость. Чем быстрее будет работать мотор, тем ярче будет гореть светодиод.
Просто подсоедините анод (длинную ножку светодиода), среднюю ножку транзистора или отрицательную клемму двигателя, потом соедините катод ( отрицательную сторону светодиода с более короткой ножкой) к резистору 1К, который соедините с плюсом питания.
ПИТАНИЕ:
Не обязательно питать контроллер и двигатель от одной батареи, в данном случае это удобно. При перепрограммировании, ардуино может питаться от внешнего источника. При этом не обязательно отключать Vin ножку, поскольку источник питания определяется автоматически. Внешний источник будет выбран, если он даёт 7.4В или около того, иначе источником будет USB.
РЕВЕРС
Эта схема очень проста и питает лишь один двигатель в одном направлении. К примеру, для робота-лунохода, в котором 6 моторов, можно продублировать схему. 3 левых двигателя можно завести первой схемой и 3 правых двигателя — другой. Поскольку реверса нет, полноприводное управление невозможно, но робот остается маневренным.