상태 확인하기


스텝모터 동작상태 확인

getState() 함수로 스텝모터의 동작상태를 확인할 수 있습니다.

state = step.getState()

이 함수는 스텝모터의 동작 상태를 나타내는 코드를 반환합니다. 반환되는 동작상태의 종류는 다음과 같습니다.

반환 값 상태
0 정지됨
1 제어 잠김(lock)
그 외 동작 중

예제

#include <PhpocExpansion.h>
#include <Phpoc.h>

byte spcId = 1;

ExpansionStepper step(spcId);

int state;

void setup() {
    Serial.begin(9600);
    while(!Serial)
        ;

    Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
    Expansion.begin();

    Serial.println(step.getPID());
    Serial.println(step.getName());

    step.setMode(4);
    step.setVrefStop(2);
    step.setVrefDrive(8);
    step.setResonance(120, 250);
    step.setSpeed(400);
    step.setAccel(800);

    step.stepGoto(400);

    while(state = step.getState()) {
        Serial.print("state: ");
        Serial.println(state);
        delay(200);
    }

    Serial.print("state: ");
    Serial.println(state);
}

void loop() {

}
state: 2
state: 2
state: 2
state: 2
state: 2
state: 2
state: 2
state: 0

카운터 위치 확인

getPosition() 함수를 이용하여 현재 카운터 위치를 확인할 수 있습니다.

pos = step.getPosition()

이 함수는 스텝모터의 현재 카운터 위치를 반환합니다.

예제

#include <PhpocExpansion.h>
#include <Phpoc.h>

byte spcId = 1;

ExpansionStepper step(spcId);

int pos = -400;

void setup() {
    Serial.begin(9600);
    while(!Serial)
        ;

    Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
    Expansion.begin();

    Serial.println(step.getPID());
    Serial.println(step.getName());

    step.setMode(4);
    step.setVrefStop(2);
    step.setVrefDrive(8);
    step.setResonance(120, 250);
    step.setSpeed(400);
    step.setAccel(800);
    step.setPosition(pos);

    step.stepGoto(400);

    while(step.getState()) {
        pos = step.getPosition();
        Serial.print("position: ");
        Serial.println(pos);
        delay(200);
    }
}

void loop() {

}
position: -400
position: -369
position: -302
position: -214
position: -126
position: -39
position: 48
position: 135
position: 223
position: 310
position: 375
position: 400

디지털 입력포트의 상태 확인

getEio() 함수로 디지털 입력포트의 현재 상태를 확인할 수 있습니다.

state = step.getEio(id)

반환되는 입력포트 상태의 종류는 다음과 같습니다.

반환 값 상태
0 LOW
1 HIGH (기본 값)

예제

#include <PhpocExpansion.h>
#include <Phpoc.h>

byte spcId = 1;

ExpansionStepper step(spcId);

void setup() {
    Serial.begin(9600);
    while(!Serial)
        ;

    Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
    Expansion.begin();

    Serial.println(step.getPID());
    Serial.println(step.getName());
}

void loop() {
    Serial.print(step.getEio(0));
    Serial.print(step.getEio(1));
    Serial.print(step.getEio(2));
    Serial.print(step.getEio(3));
    Serial.println();
    delay(1000);
}
1111  
1111  
1110  
0110  
...