본문 바로가기
Embedded SW/[Infineon] Embedded SW Project

[Infineon] 22. Aurix (TC23x) DC모터를 속도 측정 값을 그래프로 확인

by 방구석 임베디드 2021. 7. 3.
반응형

DC Motor에 Duty 50%를 주어 PWM을 만들어 보도록 하자!

PWM의 주기는 200Hz로 설정하였다.

 

이에 다하여 모터가 동작하고 모터에 연결된 엔코더(Encoder)를 통하여 측정된 Pulse 그래프는 아래와 같다.

이 Pulse를 100ms마다 측정한 Pulse는 Cnt가 되고

이 Cnt를 이용하여 100ms마다 모터의 RPM을 계산하여 내부 변수에 저장한다.

저장된 변수는 아래와 같이 그림을 통하여 컴퓨터로 받아온다.

그렇다면 이제 RPM을 띄어 보도록 하자!

 

void DrvAsc_Test1(void)
{
    uint32_t temp = 0u;
    static uint16_t TestCnt1 = 0u;
    
    g_AsclinAsc.count = 1;

    temp = (uint32_t)fSenseMotorRpm;
    if(temp >= 255)
    {
        temp = 255;
    }

    g_AsclinAsc.txData[0] = (uint8_t)temp;

    /* Transmit data */
    IfxAsclin_Asc_write(&g_AsclinAsc.drivers.asc0, g_AsclinAsc.txData, &g_AsclinAsc.count, TIME_INFINITE);
}

RPM이 좀 흔들리는구나!

지금 구현한 것은 Open Loop Control 방법을 쓴것이다.

Duty를 0.5로 강제적으로 하여 모터를 구동한 것이다.

이 RPM은 자동차에 짐을 싫으면 또 변경이 되게 된다.

 

지금부터 Feedback Controller를 설계하여 내가 원하는 RPM을 측정할수 있도록 해보자!

 

반응형

댓글