steper мотор и количество оборотов.
- Войдите на сайт для отправки комментариев
Сб, 01/06/2013 - 00:35
У меня такой мторо и таким реле

Подскажите пожалуйста как его заставить сделать допустим 3 оборота в 1 сторону и 3 в другую.
В интернете нашел множество примеров, но странно то что все они как-то непонятно для меня работают. Допустим вот 1 из примеров. Где здесь указывается время или обороты?
//declare variables for the motor pins
int motorPin1 = 8; // Blue - 28BYJ48 pin 1
int motorPin2 = 9; // Pink - 28BYJ48 pin 2
int motorPin3 = 10; // Yellow - 28BYJ48 pin 3
int motorPin4 = 11; // Orange - 28BYJ48 pin 4
// Red - 28BYJ48 pin 5 (VCC)
int motorSpeed = 1200; //variable to set stepper speed
int count = 0; // count of steps made
int countsperrev = 512; // number of steps per full revolution
int lookup[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001};
//////////////////////////////////////////////////////////////////////////////
void setup() {
//declare the motor pins as outputs
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
Serial.begin(9600);
}
//////////////////////////////////////////////////////////////////////////////
void loop(){
if(count < countsperrev )
clockwise();
else if (count == countsperrev * 2)
count = 0;
else
anticlockwise();
count++;
}
//////////////////////////////////////////////////////////////////////////////
//set pins to ULN2003 high in sequence from 1 to 4
//delay "motorSpeed" between each pin setting (to determine speed)
void anticlockwise()
{
for(int i = 0; i < 8; i++)
{
setOutput(i);
delayMicroseconds(motorSpeed);
}
}
void clockwise()
{
for(int i = 7; i >= 0; i--)
{
setOutput(i);
delayMicroseconds(motorSpeed);
}
}
void setOutput(int out)
{
digitalWrite(motorPin1, bitRead(lookup[out], 0));
digitalWrite(motorPin2, bitRead(lookup[out], 1));
digitalWrite(motorPin3, bitRead(lookup[out], 2));
digitalWrite(motorPin4, bitRead(lookup[out], 3));
}
А это управляющая программа которая крутит мотор сначала в одну а потом другую сторону
Управление шаговиками осуществляется не в терминах оборотоа, а в терминах шагов.
смотрите харрактеристику двигателя - сколько шагов на один оборот или что по сути тоже самое - на сколько градусов поворачивается ротор за один шаг
далее настраиваете программу так, чтобы она делала столько шагов, сколько вам нужно
Есть библиотеки для шаговых двигателей Stepper и AccelStepper . Они с примерами. Установите их и попробуйте примеры со своим драйвером и шаговиком - там нет ничего сложного и у вас всё заработает.