Arduino:Примеры/MotorKnob
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Управление шаговым мотором[1]
Шаговыми моторами, благодаря их уникальному дизайну, можно управлять с очень высокой точностью и без необходимости использовать разного рода механизмы обратной связи. Вал шагового мотора (установленный при помощи нескольких магнитов) управляется серией электромагнитных пружин, в особой последовательности заряжаемых то положительным, то отрицательным зарядом. Это позволяет ему двигаться вперед и назад маленькими и очень точными «шажками».
Существует два вида шаговых моторов – однополярные и двухполярные – и очень важно знать, какой именно вид вы используете, потому что для каждого вида нужна своя особая цепь. Информацию о постройке цепи для обоих случаев смотрите ниже, причем приложенный в конце урока код работает и с однополярным, и с двухполярным шаговым мотором.
В этом примере потенциометр (или другой прибор) подключен к 0-ому входному аналоговому контакту на Arduino – это и библиотека Stepper позволит управлять движением шагового мотора. Сам шаговый мотор подключен к цифровым контактам 8, 9, 10 и 11 (и для полярных, и двухполярных).
Кроме того, к Arduino нужно подключить транзистор Дарлингтона U2004 (если используете однополярный мотор) или H-мост SN754410NE (если двухполярный).
Более подробно о разнице между двумя видами шаговых моторов можно прочесть на сайте Тома Иго.
Необходимое оборудование
- Плата Arduino;
- Потенциометр;
- Шаговый мотор;
- Транзистор Дарлингтона U2004 (если используете однополярный шаговый мотор);
- H-мост SN754410ne (если используете двухполярный шаговый мотор);
- Питание, достаточное для работы вашего шагового мотора;
- Макетная плата Breadboard;
- Провода-перемычки;
Цепь и схема
Ниже можно найти схемы, показывающие то, как построить цепь и для однополярного, и для двухполярного шагового мотора. Но в любом случае их лучше запитать от внешнего источника, т.к. они требуют слишком много энергии, и возможностей Arduino для этого не хватает.
Также в обоих случаях к цепи нужно подключить потенциометр на 10 кОм: боковые контакты – к питанию и «земле», а центральный – к 0-ому аналоговому контакту.
Примечание: Ниже показаны схемы только для 4-контактного соединения. Код выстроен таким образом, что с 2-контактным соединением он работать не будет.
Цепь и схема для однополярного:
Цепь и схема для двухполярного:
Код
Подходит и для однополярного, и для двухполярного шагового мотора.
/* Управление шаговым мотором
Вал шагового мотора будет поворачиваться вслед за поворотом ручки
потенциометра (или в соответствии с изменением данных от другого
датчика, стоящего вместо потенциометра), подключенного к 0-ому
входному аналоговому контакту.
http://www.arduino.cc/en/Reference/Stepper
Этот код не защищен авторским правом.
*/
#include <Stepper.h>
// Поменяйте это число на количество «шагов» вашего мотора:
#define STEPS 100
// Создаем экземпляр класса Stepper, указываем количество шагов
// и контакты, к которым подсоединен шаговый мотор:
Stepper stepper(STEPS, 8, 9, 10, 11);
// Результат предыдущего считывания с входного аналогового контакта:
int previous = 0;
void setup()
{
// Задаем скорость вращения мотора на 30 оборотов в минуту:
stepper.setSpeed(30);
}
void loop()
{
// Получаем данные от датчика:
int val = analogRead(0);
// Двигаемся на количество шагов согласно данным от датчика:
stepper.step(val - previous);
// Запоминаем предыдущий результат от датчика:
previous = val;
}
См.также
- Stepper myStepper = Stepper(steps, pin1, pin2, pin3, pin4)
- stepper.setSpeed()
- stepper.step()
- Stepper library reference
- Sweep - sweep the shaft of a servo motor back and forth.
- Knob - control the position of a servo with a potentiometer.
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino