Модуль 7 — Двигатели и исполнительные устройства (курс для начинающих)

Цель модуля: освоить управление различными исполнительными устройствами: сервоприводами, коллекторными моторами и драйверами. Вы научитесь использовать ШИМ (PWM) для регулировки скорости, а также подключать двигатели через транзисторы и драйверы.


Теория

Сервоприводы

Сервопривод — это устройство, которое позволяет поворачивать вал на заданный угол (обычно от 0° до 180°). Управление осуществляется с помощью ШИМ-сигнала с фиксированным периодом 20 мс, где длительность импульса определяет угол поворота.

Управление мотором через MOSFET

Для включения/выключения и регулировки скорости коллекторных моторов часто используют n-канальные MOSFET-транзисторы. Они управляются с Arduino через цифровой пин с ШИМ, что позволяет менять скорость вращения.

Двунаправленное управление — драйвер L298N

L298N — популярный драйвер для управления двигателями в обе стороны. Он позволяет управлять двумя коллекторными моторами, а также регулировать скорость через PWM. Драйвер принимает сигналы управления от Arduino и подаёт питание на моторы от внешнего источника.


Практика

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

#include <Servo.h>

Servo myservo;

void setup() {
  myservo.attach(9); // Пин для управления
}

void loop() {
  myservo.write(0);   // Поворот на 0°
  delay(1000);
  myservo.write(90);  // Поворот на 90°
  delay(1000);
  myservo.write(180); // Поворот на 180°
  delay(1000);
}

Управление скоростью мотора через PWM (MOSFET)

int motorPin = 5; // Пин с поддержкой PWM

void setup() {
  pinMode(motorPin, OUTPUT);
}

void loop() {
  for (int speed = 0; speed <= 255; speed += 5) {
    analogWrite(motorPin, speed); // Увеличиваем скорость
    delay(50);
  }
  for (int speed = 255; speed >= 0; speed -= 5) {
    analogWrite(motorPin, speed); // Уменьшаем скорость
    delay(50);
  }
}

Двустороннее управление коллекторным двигателем (L298N)

int in1 = 8;
int in2 = 9;
int enA = 5; // Пин с PWM

void setup() {
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(enA, OUTPUT);
}

void loop() {
  // Вращение вперед
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  analogWrite(enA, 200);
  delay(2000);

  // Стоп
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);
  delay(1000);

  // Вращение назад
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  analogWrite(enA, 200);
  delay(2000);

  // Стоп
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);
  delay(1000);
}

Типичные ошибки

  • Подключение мотора напрямую к пину Arduino — это может сжечь контроллер. Всегда используйте транзисторы или драйверы.
  • Отсутствие диода для защиты от обратного тока мотора.
  • Недостаточное питание сервопривода или мотора — приводит к рывкам и сбоям.

Что дальше

В следующем модуле мы рассмотрим Финальный проект Arduino: идеи и сборка


Контрольные вопросы

  1. Как управлять углом поворота сервопривода?
  2. Зачем нужен MOSFET при управлении мотором?
  3. Какие функции выполняет драйвер L298N?
  4. Как реализовать реверс вращения двигателя?

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

<< Проекты << Все товары >> Статьи, уроки >>

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Стойка роликовая для оси Y с крепежом

Стойка роликовая для оси Y с крепежом

Монтажная панель из МДФ для организации оси Y автоматического лазерного гравера.Отверстия под шаговы..

116.75грн.

Шестерня для зубчатого ремня на 36 зубьев под ось 8 мм

Шестерня для зубчатого ремня на 36 зубьев под ось 8 мм

Используется для передачи и редукции крутящего момента от двигателя до оси 8 ммКоличество зубьев 36 ..

94.71грн.

Arduino 4-20 мА подключение датчика уровня

Arduino 4-20 мА подключение датчика уровня

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

Осциллограф на ардуино

Осциллограф на ардуино

Простой осциллограф своими руками без паяльникаОсциллографы бывают дорогие или очень дорогие. Как же..

Драйвер шагового двигателя DRV8825 для шилда RAMPS

Драйвер шагового двигателя DRV8825 для шилда RAMPS

Драйвер шагового двигателя для системы RAMPS. Устанавливается на специальный CNC-шилд Arduino д..

104.31грн.