Arduino:Примеры/Stepper One Step At A Time: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
{{Arduino панель перехода}} | {{Arduino панель перехода}} | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} |
Версия от 11:21, 8 июля 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Управление шаговым мотором – медленные шаги[1]
Шаговые моторы могут управляться с высоким уровнем точности, не требуя при этом никаких механизмов обратной связи. Вал шагового мотора закреплен магнитами, а его управление («шаговое» движение вперед и назад) осуществляется несколькими электромагнитными пружинами, одни из которых имеют положительный заряд, а другие – отрицательный. С их помощью вал перемещается маленькими шажками вперед и назад.
Начиная работу, очень важно знать, с каким именно шаговым мотором вам предстоит иметь дело. Эти устройства бывают двух типов – униполярные и биполярные – и цепь для них строится по-разному. Впрочем, данный скетч-пример поддерживает оба типа шаговых моторов. О том, как построить цепь, смотрите здесь (для униполярных моторов) или здесь (для биполярных моторов).
В данном скетче-примере шаговый мотор просто делает очень медленные шаги – один за другим. Этот скетч может пригодиться, к примеру, для проверки того, к правильным ли контактам Arduino подключены провода шагового мотора. Если все подключено правильно, все шаги должны быть в одном направлении. Кроме того, этот скетч можно использовать, чтобы сосчитать количество шагов, которые ваш мотор делает за один оборот.
И униполярные, и биполярные моторы управляются цифровыми контактами 8, 9, 10 и 11. При использовании униполярного мотора к Arduino/Genuino нужно подключить транзистор Дарлингтона U2004, а при использовании биполярного – Н-мост SN754410NE.
Более подробно о разнице между типами шаговых моторов читайте в этой статье Тома Иго.
Необходимое оборудование
- Плата Arduino или Genuino
- Шаговый мотор
- Массив Дарлингтона U2004 (если используете униполярный мотор)
- Н-мост SN754410NE (если используете биполярный мотор)
- Источник питания, соответствующий используемому мотору
- Провода-перемычки
- Макетная плата
Цепи и схемы
Ниже показаны цепи и схемы для обоих типов шаговых моторов. Впрочем, какой бы тип вы не использовали, его лучше питать от внешнего источника, т.к. он требует слишком много энергии, и мощности одной лишь Arduino/Genuino на него будет не хватать.
Примечание: Обе цепи используют 4-проводное подключение (2-проводное подключение данным скетчем не поддерживается).
Цепь и схема для униполярного мотора
Цепь и схема для биполярного мотора
Код
/*
Управление шаговым мотором – медленные шаги
Этот скетч управляет униполярным/биполярным шаговым мотором.
Мотор подключается к 8, 9, 10 и 11 контактам на Arduino.
Мотор делает очень медленные шаги – один за другим. Этот скетч может
пригодиться, к примеру, для проверки того, к правильным ли контактам
Arduino подключены провода шагового мотора. Если все подключено
правильно, все шаги должны быть в одном направлении.
Кроме того, этот скетч можно использовать для подсчета шагов,
которые мотор делает за один оборот. Затем это число можно
использовать, к примеру, в скетче One Revolution – чтобы проверить,
правильное ли оно.
Создан 30 ноября 2009 года Томом Иго (Tom Igoe).
*/
#include <Stepper.h>
const int stepsPerRevolution = 200; // «200» - это количество шагов, за которые вал выполняет
// полный оборот; у вашего мотора это число может быть другим
// инициализируем библиотеку Stepper на контактах 8, 9, 10 и 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
int stepCount = 0; // количество шагов, которые сделал мотор
void setup() {
// инициализируем последовательный порт:
Serial.begin(9600);
}
void loop() {
// медленно делаем один шаг за другим:
myStepper.step(1);
Serial.print("steps:"); // "шаги:"
Serial.println(stepCount);
stepCount++;
delay(500);
}
См.также
- Stepper myStepper = Stepper(steps, pin1, pin2, pin3, pin4)
- stepper.setSpeed()
- stepper.step()
- Stepper library reference
- MotorKnob - Moves the shaft according to the position of the knob of a potentiometer.
- StepperOneRevolution - Turn the shaft one revolution clockwise and one counterclockwise.
- StepperSpeedControl - The stepping speed is controlled by a potentiometer.