Запуск мотора постоянного тока на Arduino

Запуск мотора постоянного тока на Arduino

На этом уроке мы разберём основные принципы управления двигателями постоянного тока

Двигатели есть практически в каждом роботе. В одних роботах они приводят в действие колеса, заставляя машину перемещаться в нужном направлении. В других — двигатели крутят пропеллеры, создавая вертикальную тягу для полета. Двигатели позволяют вращаться суставам промышленного робота-манипулятора, и перемещают каретку 3D-принтера . В общем, без хорошего двигателя робота не сделать.

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

Моторы постоянного тока нельзя подключать напрямую к Arduino. из-за того чтобы пины на Arduino не может выдавать ток больше 40 мА. Делается это, как-правило, с помощью транзи

Пройдя урок по управлению светодиодом кажется, что с двигателем можно поступить точно также: подключить его к цифровым выводам Ардуино, а затем включать и выключать по программе. Но всё не так легко как кажется. Даже небольшой двигатель, часто используемый в разного рода игрушках, для своей работы требует ток силой от 200 мА до 1 Ампера. А цифровой выход Arduino как я уже сказал может дать нам только 40мА.

Самым распространённым решением данной проблемы является транзистор.

По сути это примитивный H-мост, в последующих уроках мы покажем как собрать более мощный H-мост.

Необходимые компоненты

Мы рассмотрим вариант взаимодействия с транзистором. Принципы подключения мотора будут разобраны на конкретных комплектующих: DC-мотор, плата Arduino, N-канальный транзистор, резистор на 10 кОм (R1), резистор на 220 Ом (R2).

Скетч

int led = 9;    
void setup() {
pinMode(led, OUTPUT);
}    
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Администратор

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