본문 바로가기
반응형

모터제어5

[Infineon] 23. Aurix (TC23x) DC모터 Feedback Control (PID) 드디어 이제 Feedback Control을 해볼수 있는 환경이 되었다! 큰 그림은 아래와 같다. 내가 원하는 RPM을 입력으로 넣을 것이고 Controller에서는 PWM Duty값을 만들어 줄것이다. 그리고 이 Controller는 내가 원하는 RPM과 Encoder로부터 측정된 RPM을 0으로 만들어 줄것이다. 대표적인 Feedback Controller로 PID Controller가 있다. 추후 PID Controller에 대해서 더 이야기 해보도록 하겠다. 아래 코드는 Controller를 구현한 부분이다. void MotorFeedbackController(void) { static int32_t lProportionalControlInput = 0; static int32_t lIntegra.. 2021. 7. 3.
[Infineon] 22. Aurix (TC23x) DC모터를 속도 측정 값을 그래프로 확인 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)fSenseMotorR.. 2021. 7. 3.
[Infineon] 18. Aurix (TC23x)를 이용한 무선 통신 자동차 구현 (초기버전) 이제 모든 준비가 되었습니다. 먼저 오늘 무선으로 동작시킨 자동차 동영상을 올립니다. 그러면 전체적으로 자동차가 어떻게 구성이 되어 있는지를 살펴 보도록 하겠습니다. 아래 사진의 모터를 모터 드라이브와 연결시키고, 2개의 모터드라이브를 연결하였습니다. 전체적인 라인 구성은 아래와 같습니다. 우선 뒷바퀴 2개에 대한 라인은 아래와 같습니다. 앞바퀴도 동일한 구성입니다. 따라서 앞바퀴 구성은 생략하겠습니다. 자동차 모습은 아래와 같습니다. (우선 돌아가도록만 만들었습니다.) 기본적은 코드는 아래와 같습니다. void Unit_WirelessControl(void) { uint8_t ucWirelessCmd = 0u; ucWirelessCmd = (uint8_t)gu32nuAscRxData; if(ucWire.. 2021. 6. 19.
[Infineon] 15. Aurix (TC23x)를 이용한 DC 모터 동작 수행 1 (L298N, FIT0450) 한번 모터를 연결해 보도록 하자! 전체 그림은 아래와 같다. 아래 빨강생 동그라미부분이 실제 모터드라이버와 모터가 연결된 전압부이다. 그리고 파랑색 동그라미가 GPO 4개, PWM 1개가 연결된 Control 단이다. 모터드라이브를 제어하기 위해서는 GPO 4개가 필요하다. 이것을 제어하여 앞회전, 뒷회전을 제어한다. 조금더 자세히 회로를 그려보면 아래와 같다. MCU단의 GPO 및 PWM 단은 아래와 같이 설계한다. 초록색 P33.10에는 PWM이 나온다. 그리고 빨강색 박스는 GPO로 사용된다. 방향설정은 아래와 같다. IN1 : P02.0 IN2 : P02.2 IN3 : P02.4 IN4 : P02.6 ENA A/B INPUT 1/3 INPUT 2/4 Motor A/B High High Low Fo.. 2021. 6. 12.
반응형