setFilterFrequency() 함수를 이용해 저역통과필터 컷오프 주파수를 설정합니다.
dcmotor.setFilterFrequency(freq);
저역통과필터 컷오프 주파수를 설정하면 엔코더 모니터링 시 해당 주파수보다 높은 주파수에 해당하는 신호는 카운트하지 않습니다.
getFilterPNC() 함수를 이용해 저역통과필터 노이즈 카운터값을 모니터링 하십시오.
pnc = dcmotor.getFilterPNC();
#include <PhpocExpansion.h>
#include <Phpoc.h>
byte spcId = 1;
int freq = 1000;
int count_prev = 0;
int count;
int diff;
ExpansionDCMotor dcmotor(spcId, 1);
void setup() {
Serial.begin(9600);
while(!Serial)
;
Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
Expansion.begin();
Serial.println(dcmotor.getPID());
Serial.println(dcmotor.getName());
dcmotor.setPeriod(10000);
dcmotor.setWidth(3000);
}
void loop() {
if(freq > 7000) {
dcmotor.setWidth(0);
return;
}
dcmotor.setFilterFrequency(freq);
// set the noise counter value
count = dcmotor.getFilterPNC();
diff = count - count_prev;
Serial.print("noise count at freq");
Serial.print(freq);
Serial.print(" : ");
Serial.println(diff);
freq += 200;
count_prev = count;
delay(200);
}
setFilterPNC() 함수를 이용해 저역통과필터 노이즈 카운터값을 초기화 또는 변경할 수 있습니다.
dcmotor.setFilterPNC(pnc);