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
...