2014-12-22 3 views
0

나는 스테퍼 모터를 멈추게하는 매개 변수로서 지연과 함께 한 번만 (한 번의 완전한 회전을 위해) 멈춰야 만한다. 내 요구 사항은 내 지연 값이이 수 사이에 균등하게 분배되도록 모터를 20 번 멈추는 것이다 (20)을 완성했습니다. 저는이 정지 점 (20)에 for 루프를 사용했으나 20 초 이상 delys를 얻었습니다. arduino에 대한 내 코드는 다음과 같습니다.스테퍼 모터에서 arduino를 통해 고정 된 수의 지연을 얻는 방법은 무엇입니까?

#include <Stepper.h> 

    const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution 
    // for your motor 

    // initialize the stepper library on pins 8 through 11: 
    Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11); 

    void setup() { 
    // set the speed at 60 rpm: 
    myStepper.setSpeed(60); 
    // initialize the serial port: 
    Serial.begin(9600); 
    } 

    // step one revolution in one direction: 
    void loop() { 
    int noi=20;// set the no of images here 
    for(int i=0;i<=noi;i++){ 
    delay(8000/noi); 
    } 
    Serial.println("clockwise"); 
    myStepper.step(stepsPerRevolution); 

    } 
+0

코드에서 수행하려는 작업이 명확하지 않습니다. 질문에 다시 답하십시오. 지금 루프()는 8 초 동안 지연 한 다음 모터를 한 번 돌립니다. 변수'noi'는 아무 것도하지 않습니다. – UncleO

+0

실제로 우리는 스테퍼 모터의 단계에 따라 회전하는 플랫폼을 만들었습니다. 우리는이 플랫폼에서 객체를 유지하고 전체 360도를 커버하기 위해 20 번 (또는 임의의 숫자) 회전하여 이미지 (20 개)를 가져옵니다. . 지연 값을 설정하여 전체 360 도가 20 개의 이미지에 적용되도록하는 방법은 무엇입니까? – user3327290

답변

1

귀하의 질문은 여전히 ​​혼란 스럽지만 이전보다 명확합니다.

턴테이블을 구동하는 스테퍼 모터가있는 것처럼 보입니다. 모터는 1 회전 당 200 스텝을 필요로하지만, 턴테이블을 1 회전 시키는데 8000 스텝을 필요로합니다.

어떤 의미에서는 중요한 것은 8000입니다. 테이블을 일시 중지하려면 시도한 것처럼 8000을 동일한 조각으로 나누어야합니다. 하지만 }을 잘못 배치했습니다.

void loop() { 
    int noi=20;// set the no of images here 
    for(int i=0;i<=noi;i++){ 
     delay(8000/noi); 
    } <<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE 
    Serial.println("clockwise"); 
    myStepper.step(stepsPerRevolution); 

} 

void loop() { 
    int noi=20;// set the no of images here 
    for(int i=0;i<=noi;i++){ 
     delay(enough_delay_to_take_image); // or trigger image here? 
     Serial.println("clockwise"); 
     myStepper.step(8000/noi); 
    } 
} 

유일 stepsPerRevolution = 200 해당 사항 myStepper.setSpeed(60);와 함께 이동 속도를 계산한다. 테이블을 빨리 옮기고 싶습니까? 물체가 너무 많이 흔들릴 수 있습니다.

 myStepper.setSpeed(1); 

이미지가 3 초 동안 이동하게됩니다. 너무 느리다면,

 myStepper.setSpeed(3); 

이미지가 1 초 걸릴 때마다 움직임이 발생합니다.