Эту схему можно использовать для запуска двигателей (например в простом роботе). Здесь сфокусируемся именно на инструкции для создания схемы управления мотором, так что в новых статьях всегда можно будет на нее сослаться. Также мы рассмотрим примерный алгоритм, чтобы показать, как использовать схему.
Шаг 1: Компоненты
Список довольно короток:
- Составной транзистор Дарлингтона TIP120 (npn)
- Диод 1N4001
- Беспаечная макетная плата
- Провода для макетной платы
- Резистор 1KОм (Их будет нужно 2, если Вы захотите добавить дополнительный светодиод, об этом чуть позже)
- Мотор, работающий от постоянного тока (Выбирая двигатель для этого проекта, обратите внимание на то, что транзистор TIP120 выдерживает ток около 5А и в пике 8А).
- Батарея подходящая для запуска Вашего мотора и достаточным напряжением, чтобы запитать контроллер.
- Любой контроллер, обеспечивающий ШИМ.
Шаг 2: ПРИНЦИП ДЕЙСТВИЯ
ШИМ расшифровывается как широтно-импульсная модуляция. Это значит, что быстро подавая и убирая напряжение можно регулировать яркость свечения светодиода, которую различит глаз человека или регулировать напряжение на инертной нагрузке, например моторе.
(на рисунке — управление эквивалентным напряжением на инертной нагрузке посредством ШИМ)
Скважность
Отношение полного периода к времени включения называют скважностью (англ. duty cycle). Рассмотрим пару сценариев при напряжении питания Vcc равным 5 вольтам.
- 10% времени на выходе контроллера логическая 1, эквивалентное напряжение — 0,5В
- 80% времени на выходе контроллера логическая 1, эквивалентное напряжение — 4В
Шаг 3: СБОРКА ЦЕПИ
Схему можно посмотреть тут:
(ПО для открытия файла тут: http://fritzing.org/download/0.7.0b/)
(Ищите секцию «Загрузки» в нижнем правом.)
Также есть пример кода:
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», тем быстрее будет работать мотор и ярче будет гореть светодиод.
ПИТАНИЕ:
Питать контроллер той же самой батареей, что и двигатель, не обязательно, но это удобно. Можно подключить Arduino к батарейке напрямую через разъём Vin. Обратите внимание, не все версии ардуино умеют работать от 7-12 Вольт! Будте внимательны и проверьте возможность такого подключения для вашей платы.
РЕВЕРС (изменение полярности напряжения на моторе)
Эта схема очень проста и управляет вращением двигателя в одном направлении. Но даже имея столь простое управление, можно сделать простейшего робота, продублировав эту схему для управления вторым мотором.