Тормозит шаговый мотор при повороте энкодера

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017
#include <iarduino_Encoder_tmr.h> 
iarduino_Encoder_tmr enc(11,12);         
#include <CustomStepper.h>
CustomStepper stepper(4, 5, 6, 7);

void setup(){
    Serial.begin(9600);                 
    enc.begin();                           
}

void loop(){
int i=enc.read();                    
if(i){             
if(i==encLEFT ){Serial.println("<");
stepper.setDirection(CCW);
stepper.rotateDegrees(3); 
} 
if(i==encRIGHT){Serial.println(">");
stepper.setDirection(CW);
stepper.rotateDegrees(3);
}
stepper.run();
}
//stepper.run();

}

 

 

Здравствуйте. При повороте энкодера шаговфый мотор тормозит. Как я поняла происходит это из-за задержек?

Если раскоментировать строку с //stepper.run();, а сверху убрать, то программа не работает.

Как исправить?

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Прочитала

 Библиотека iarduino_Encoder_tmr использует второй аппаратный таймер,

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Как остановить работу энкодера пока не будет осуществлен поворот шагового мотора?

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017
#include <iarduino_Encoder_tmr.h> 
iarduino_Encoder_tmr enc(11,12);         
#include <CustomStepper.h>
CustomStepper stepper(4, 5, 6, 7);
int qw=0;
void setup(){
    Serial.begin(9600);                 
    enc.begin();                           
}

void loop(){

if (qw==0){
int i=enc.read(); 
if(i){             
if(i==encLEFT ){
Serial.println("<");
stepper.setDirection(CCW);
stepper.rotateDegrees(30); 
qw=1;
} 
if(i==encRIGHT){Serial.println(">");
stepper.setDirection(CW);
stepper.rotateDegrees(30);
qw=1;
}
}
}
if (qw==1){
stepper.run();
if (stepper.isDone()){qw=0;}
}
}

Работает. Правильно ли я сделала? Или оптимальнее сделать иначе?

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

Irinka пишет:

Как остановить работу энкодера пока не будет осуществлен поворот шагового мотора?

пусть энкодер током бьёца, пока мотор проворачивается. 

vvadim
Offline
Зарегистрирован: 23.05.2012

а на прерывания энкодер прицепить , попробуйте...