Главная » Arduino
Призовой фонд
на октябрь 2021 г.
1. Рюкзак Mean Well
Компэл
2. Инвертор авто Mean Well 150 Ватт
Компэл
3. Термос MeanWell
Компэл
4. 100 руб.
От пользователей

Похожие статьи:


Курс Arduino - Моторы

Моторы

В этом уроке мы рассмотрим два вида моторов: DC мотор и Сервопривод.

Сервопривод – это моторчик, который может держать заданный угол поворота. Так же есть сервы, которые могут удерживать заданную скорость, но сегодня мы не будем их рассматривать.

Нам понадобятся

  • Микросервопривод
  • DC мотор(я использовал FA-130 из Матрешки)
  • Конденсатор на 220 мкФ
  • MOSFET
  • Выпрямительный диод
  • Потенциометр
  • Соединительные провода «Папа-Папа»

DC мотор

Для начала рассмотрим обычный моторчик. Ток, который поддерживает Arduino на своих выходах до 40 мА. Моторчик без нагрузки потребляет 80мА, а при блокировке 1600мА (для разных моторчиков потребляемый ток может варьироваться), что определенно больше максимальных 40 мА. Поэтому, если моторчик просто подключить к пину Arduino, то велик шанс, в лучшем случае повредить мотор или сжечь пин, в худшем – вывести из строя микроконтроллер.

Для того, чтобы подключить мотор к Arduino, придуманы различные Motor-shieldы, придуманы микросхемы, например L298, MOSFET- транзисторы. В первой части курса мы рассмотрим только MOSFET-транзистор.

Что такое транзистор? Транзистор – это электронная кнопка, только «нажимаемая» током. О нем поподробнее.

MOSFET- транзистор – это транзистор для управления большими токами, малым напряжением.

Так как вывод Vin позволяет подключать нагрузку без ограничений по величине тока, мы сможем подключить моторчик и управлять им с помощью MOSFET и Arduino.

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

Компонент сверку мотора – это выпрямительный диод. Если ты знаком с устройством коллекторного мотора, то ты знаешь, что при его работе возникает обратный ток, который может повредить наш MOSFET. Для того чтобы этого не произошло мы и используем выпрямительный диод.

Главное - не перепутать полярность подключения диода. Иначе - будет короткое замыкание.

Теперь перейдем к коду.

Код к мотору

#define MOTOR 9
#define POT A0

void setup() {
  // Обозначим пин MOTOR как выход.
  pinMode(MOTOR , OUTPUT);
  Serial.begin(9600);
  Serial.println("Potentiometer's values in volts");
}

void loop() {
  //Создаем переменную, для регулирования скорости мотора
 int motorSpeed = analogRead(POT)/ 4;
 // Выставляем скорость мотора в соответствии с показаниями потенциометра.
 analogWrite(MOTOR,motorSpeed);
 //Создаем "плавающую" переменную для выведения данных в Serial Monitor.
 float voltage = (analogRead(POT)/ 204.8 );
 //Выводим данные в Serial monitor.
 Serial.println(voltage);
 //Немного ждем.
 delay(1000);
}

Пояснения

Мотор подключается как аналоговый выход. То есть, питание выводится через analogWrite(MOTOR, Значение)  А в зависимости от значения, MOSFET дает сигнал о подаче нужного напряжения.

Сервопривод

Отлично! С моторчиком разобрались. Теперь переходим к сервомотору. Без определенных знаний при управлении сервомотором не обойтись. Но хорошие люди уже постарались для нас и сделали библиотеку для управления сервой. Поэтому управлять сервомотором достаточно простая задача.

Соберем простенькую схемку, в которой серва будет поворачиваться сначала до упора в право, а потом обратно влево и так бесконечно. Где нам это пригодится, мы узнаем во Второй части нашего курса. А проявив фантазию, ты уже сейчас можешь найти применение этой схеме. Внимание на картинку.

 

Бочонок на схеме – это конденсатор. Конденсатор – это такая маленькая батарейка, которая очень быстро заряжается и быстро разряжается. О нем подробнее.

В нашей схеме он нужен, чтобы избежать просадки питания платы т.к. мы подключаем его к выводу 5V.

Цвета проводов на твоей серве могут отличаться. Например, там может быть коричневый провод вместо черного, а вместо желтого оранжевый. Не надо пугаться. Ничего не меняется. Коричневый или черный – это земля. Красный, он есть почти всегда, - питание. Желтый или оранжевый – сигнал. 

 Код для сервомотора

#include <Servo.h> //Подключим библиотеку для сервомотора.
Servo servo; // Создадим объект типа Servo

void setup() 
{
  servo.attach(13); //прикрепим серву к 13 пину.
}

void loop() 
{
  int ang = 0; //В эту переменную запишем угол.
  
  //Создаем цикл со счетчиком для поворота на 180 градусов.
 for(ang = 0; ang <= 180; ang++) 
 {
  servo.write(ang);
  delay(10);
 }
 //Создаем цикл со счетчиком для поворота обратно.
  for(ang = 180; ang >=0; ang--)
  {
    servo.write(ang);
    delay(10);
  }

}

Пояснения

Servo servo  Мы создаем Объект типа Servo. Объект Servo имеет свои свойства, как и другие объекты int, byte, char, например. Нам не надо создавать и описывать объект Servo т. к. он уже описан в подключаемой библиотеке. А второе, «маленькое», слово servo – это просто имя нашего сервомотора. Вы можете называть его как вам угодно, не забывая о грамотности в C++ ,конечно.

servo.attach(пин) С помощью этой команды мы прикрепляем нашу серву к 13 пину. Текст до точки – это имя, объявленное при создании объекта Servo. Параметром принимает номер пина, к которому подключена наша серва.

servo.write(угол) С помощью этой функции, мы даем команду серве повернуться на нужный угол. А для постоянного вращения «туда-сюда» мы использовали цикл for.

++  и  --  Это инкремент и декремент соответственно. Они нужны для более быстрой записи выражений. X++ означает то же, что и x == x+1, а x-- означает то же, что и x == x-1. Вариации.

Итог

Сегодня мы научились подключать сервомотор и DC мотор к Arduino. Это пригодится нам позже. Например, при создании мобильного робота или Робо-руки. Но это позже. 

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Плата Arduino
Arduino Uno
1 Поиск в магазине ОтронВ блокнот
Выпрямительный диод
1N4007
1 Поиск в магазине ОтронВ блокнот
ТранзисторMOSFET1 Поиск в магазине ОтронВ блокнот
DC МоторFA-1301 Поиск в магазине ОтронВ блокнот
СервоприводFS901 Поиск в магазине ОтронВ блокнот
Соединительные провода"Папа-Папа"1 Поиск в магазине ОтронВ блокнот
Макетная платаBreadboard-half1 Поиск в магазине ОтронВ блокнот
Переменный резистор10 кОм1 Поиск в магазине ОтронВ блокнот
Конденсатор220 мкФ1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (3) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
Сергей #
Как избавиться от характерного звука от мотора в виде гула (похожий на возбуждение)?
Ответить
0
talibanich #
Изменить частоту ШИМ. На сайте тут была статья в которой упоминается про это, в разделе Arduino.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Raspberry Pi 2
Raspberry Pi 2
FM-модуль RDA5807M Печатная плата для усилителя "LM3886 + AD825"
вверх