Простое, недорогое управление мотором

F14DG4NIFMVWEV9.LARGE

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

 

Шаг 1: Компоненты

Список довольно короток:

  • Составной транзистор Дарлингтона TIP120 (npn)
  • Диод 1N4001
  • Беспаечная макетная плата
  • Провода для макетной платы
  • Резистор 1KОм (Их будет нужно 2, если Вы захотите добавить дополнительный светодиод, об этом чуть позже)
  • Мотор, работающий от постоянного тока (Выбирая двигатель для этого проекта, обратите внимание на то, что транзистор TIP120 выдерживает ток около 5А и в пике 8А).
  • Батарея подходящая для запуска Вашего мотора и достаточным напряжением, чтобы запитать контроллер.
  • Любой контроллер, обеспечивающий ШИМ.

 

Шаг 2: ПРИНЦИП ДЕЙСТВИЯ

ШИМ расшифровывается как широтно-импульсная модуляция. Это значит, что быстро подавая и убирая напряжение можно регулировать яркость свечения светодиода, которую различит глаз человека или регулировать напряжение на инертной нагрузке, например моторе.

 ШИМ 

(на рисунке — управление эквивалентным напряжением на инертной нагрузке посредством ШИМ)

Скважность

Отношение полного периода к времени включения называют скважностью (англ. duty cycle). Рассмотрим пару сценариев при напряжении питания Vcc равным 5 вольтам.

пример скважности

  1. 10% времени на выходе контроллера логическая 1, эквивалентное напряжение — 0,5В
  2. 80% времени на выходе контроллера логическая 1, эквивалентное напряжение — 4В

Шаг 3: СБОРКА ЦЕПИ

FV7TITQIFMVW142.LARGEFSIH561IFOBJA44.LARGE

 

Схему можно посмотреть тут:

Simple Motor Controller

(ПО для открытия файла тут: 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: ДОПОЛНИТЕЛЬНО

F9NWU7LIFMVWCZ8.LARGEFI15K5TIFOBJ9X9.LARGE

СВЕТОДИОД:

Вы можете добавить светодиод. Сигнал ШИМ будет регулировать яркость. Чем больше времени контроллер будет подавать логическую «1», тем быстрее будет работать мотор и ярче будет гореть светодиод.

ПИТАНИЕ:

Питать контроллер той же самой батареей, что и двигатель, не обязательно, но это удобно. Можно подключить Arduino к батарейке напрямую через разъём Vin. Обратите внимание, не все версии ардуино умеют работать от 7-12 Вольт! Будте внимательны и проверьте возможность такого подключения для вашей платы.

РЕВЕРС (изменение полярности напряжения на моторе)

Эта схема очень проста и управляет вращением двигателя в одном направлении. Но даже имея столь простое управление, можно сделать простейшего робота, продублировав эту схему для управления вторым мотором.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

семнадцать + 20 =