Arduino:Примеры/Stepper One Revolution

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

{{#setlogo:ArduinoCommunityLogo.png}}

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Управление шаговым мотором – полный оборот вперед и назад[1]

Шаговые моторы могут управляться с высоким уровнем точности, не требуя при этом никаких механизмов обратной связи. Вал шагового мотора закреплен магнитами, а его управление («шаговое» движение вперед и назад) осуществляется несколькими электромагнитными пружинами, одни из которых имеют положительный заряд, а другие – отрицательный. С их помощью вал перемещается маленькими шажками вперед и назад.

Начиная работу, очень важно знать, с каким именно шаговым мотором вам предстоит иметь дело. Эти устройства бывают двух типов – униполярные и биполярные – и цепь для них строится по-разному. Впрочем, данный скетч-пример поддерживает оба типа шаговых моторов. О том, как построить цепь, смотрите здесь (для униполярных моторов) или здесь (для биполярных моторов).

В данном скетче-примере вал делает полный оборот по часовой стрелке, совершая количество «шагов», заданное при помощи библиотеки Stepper. И униполярные, и биполярные моторы управляются цифровыми контактами 8, 9, 10 и 11.

При использовании униполярного мотора к Arduino/Genuino нужно подключить транзистор Дарлингтона U2004, а при использовании биполярного – Н-мост SN754410NE.

Более подробно о разнице между типами шаговых моторов читайте в этой статье Тома Иго.

Необходимое оборудование

  • Плата Arduino или Genuino
  • Шаговый мотор
  • Массив Дарлингтона U2004 (если используете униполярный мотор)
  • Н-мост SN754410NE (если используете биполярный мотор)
  • Источник питания, соответствующий используемому мотору
  • Провода-перемычки
  • Макетная плата

Цепи и схемы

Ниже показаны цепи и схемы для обоих типов шаговых моторов. Впрочем, какой бы тип вы не использовали, его лучше питать от внешнего источника, т.к. он требует слишком много энергии, и мощности одной лишь Arduino/Genuino на него будет не хватать.

Примечание: Обе цепи используют 4-проводное подключение (2-проводное подключение данным скетчем не поддерживается).

Цепь и схема для униполярного мотора

UnipolarKnob bblg.png
UnipolarKnob schlg.png

Цепь и схема для биполярного мотора

BipolarKnob bblg.png
BipolarKnob schlg.png

Код

/*
 Управление шаговым мотором – полный оборот вперед и назад

 Этот скетч управляет униполярным/биполярным шаговым мотором.
 Мотор подключается к 8, 9, 10 и 11 контактам на Arduino.

 Мотор должен сделать один оборот по часовой стрелке, а затем один
 оборот против часовой стрелки.


 Создан 11 марта 2007 года, 
 модифицирован 30 ноября 2009 года Томом Иго (Tom Igoe). 

 */

#include <Stepper.h>

const int stepsPerRevolution = 200;  // «200» - это количество шагов, за которые вал выполняет полный оборот;
// у вашего мотора это число может быть другим

// инициализируем библиотеку Stepper на контактах 8, 9, 10 и 11: 
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  // задаем скорость на 60 оборотов в минуту:
  myStepper.setSpeed(60);
  // инициализируем последовательный порт:
  Serial.begin(9600);
}

void loop() {
  // делаем полный оборот в одну сторону: 
  Serial.println("clockwise");   //  "по часовой стрелке"
  myStepper.step(stepsPerRevolution);
  delay(500);

  // делаем полный оборот в другую сторону:
  Serial.println("counterclockwise");   //  "против часовой стрелки"
  myStepper.step(-stepsPerRevolution);
  delay(500);
}

См.также

  1. Stepper myStepper = Stepper(steps, pin1, pin2, pin3, pin4)
  2. stepper.setSpeed()
  3. stepper.step()
  4. Stepper library reference
  5. MotorKnob - Moves the shaft according to the position of the knob of a potentiometer.
  6. StepperOneStepAtATime - Single stepping to check the proper wiring of the motor.
  7. StepperSpeedControl - The stepping speed is controlled by a potentiometer.

Внешние ссылки