Библиотека Stepper

Для управления шаговым двигателем в Arduino имеется стандартная библиотека

Набор функций у нее следующий:

 Stepper();

 setSpeed();

 step().

Функция Stepper()

Функция Stepper() создает новый объект класса Stepper, привязанный к одному шаговому двигателю, подключенному к контроллеру Arduino. Конструктор следует использовать при объявлении переменной класса Stepper, обычно в самом начале — вне setup() и loop(). Количество параметров зависит от способа подключения — 2 или 4 выхода используются для управления двигателем.

Синтаксис:

Stepper(steps, pin1, pin2) Stepper(steps, pin1, pin2, pin3, pin4)

Параметры:

 steps — количество шагов в полном обороте используемого двигателя. Если в документации к двигателю указан угол одного шага, то следует разделить 360° на этот угол, что даст нам искомое количество шагов;

 pin1, pin2, pin3, pin4 — выходы Arduino для подключения шагового двигателя. Возвращаемое значение: новый экземпляр объекта класса Stepper.

Функция setSpeed(rpm)

Функция setSpeed(rpm) устанавливает скорость вращения в оборотах в минуту. Эта функция не заставляет двигатель вращаться, а лишь устанавливает скорость вращения, которая будет использована при вызове функции step().

Синтаксис:

Stepper.setSpeed(rpm)

Параметр: rpm — скорость, на которой будет производиться вращение шагового двигателя, выражается в оборотах в минуту.

Возвращаемого значения нет.

Функция step(steps)

Функция step(steps) вращает шаговый двигатель на определенное количество шагов на скорости, заданной функцией setSpeed(). Эта функция блокирующая, т. е. она ожидает окончания вращения двигателя, прежде чем передать управление в следующую строку кода. Во избежание длительной блокировки выполнения кода скетча, управление необходимо организовывать так, чтобы скорость была высокая, а за один вызов step() делалось всего несколько шагов.

Синтаксис:

Stepper.step(steps)

Параметр: steps — количество шагов:

• положительное число — вызывает вращение в одну сторону;

• отрицательное — в противоположную. Возвращаемого значения нет.

Пример использования библиотеки Stepper

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

#include <Stepper.h>

const int stepsPerRevolution=200; // количество шагов в полном обороте двигателя

Stepper myStepper(stepsPerRevolution,8,9,10,11);

int minangle=15; // угол поворота на 1 нажатие (шаг камеры) struct KEYS // структура для хранения статусов клавиш

{

int button; // нажатая кнопка

long millisbutton[7]; // millis для button

};

void setup() {;}

void loop() { int valbutton;

// опрос клавиатуры valbutton=analogRead(A0); if(valbutton<1000)

{buttonClick2(buttonClick1(valbutton));}

}

// обработка нажатия кнопки int buttonClick1(int val)

{

if(val>650) {KEYS1.button=1;return 1;}

if(val>600) {KEYS1.button=2;return 2;}

if(val>530) {KEYS1.button=3;return 3;}

if(val>450) {KEYS1.button=4;return 4;}

if(val>300) {KEYS1.button=5;return 5;}

if(val>200) {KEYS1.button=6;return 6;}

return 0;

}

void buttonClick2(int val)

{

if(millis()-KEYS1.millisbutton[val]<100) // проверка на дребезг return;

KEYS1.millisbutton[val]=millis(); KEYS1.button=val;

switch(val) { case 1: // left

myStepper.step(stepsPerRevolution*minangle/360*(-1)); break;

case 2: // up break;

case 3: // down break;

case 4: // right myStepper.step(stepsPerRevolution*minangle/360); break;

case 5: // white break;

case 6: // red

// код на нажатие кнопки камеры break;

default: break;

}

}

 

Вверх

 

Основные версии плат Arduino

Due — плата на базе 32-битного ARM микропроцессора Cortex-M3 ARM SAM3U4E;

Leonardo — плата на микроконтроллере ATmega32U4;

Uno — самая популярная версия базовой платформы Arduino;

Duemilanove — плата на микроконтроллере ATmega168 или ATmega328;

Diecimila — версия базовой платформы Arduino USB;

Nano — компактная платформа, используемая как макет. Nano подключается к компьютеру при помощи кабеля USB Mini-B;

Mega ADK — версия платы Mega 2560 с поддержкой интерфейса USB-host для связи с телефонами на Android и другими устройствами с интерфейсом USB;

Mega2560 — плата на базе микроконтроллера ATmega2560 с использованием чипа ATMega8U2 для последовательного соединения по USB-порту;

Mega — версия серии Mega на базе микроконтроллера ATmega1280;

Arduino BT — платформа с модулем Bluetooth для беспроводной связи и программирования;

LilyPad — платформа, разработанная для переноски, может зашиваться в ткань;

Fio — платформа разработана для беспроводных применений. Fio содержит разъем для радио XBee, разъем для батареи LiPo и встроенную схему подзарядки;

Mini — самая маленькая платформа Arduino;

Pro — платформа, разработанная для опытных пользователей, может являться частью большего проекта;

Pro Mini — как и платформа Pro, разработана для опытных пользователей, которым требуется низкая цена, меньшие размеры и дополнительная функциональность.