저역통과필터 설정 및 모니터링


저역통과필터 관련 주요 함수

저역통과필터 컷오프 주파수 설정

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);