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 . Они с примерами. Установите их и попробуйте примеры со своим драйвером и шаговиком - там нет ничего сложного и у вас всё заработает.