PinOut & Configuration 설정
- L298N 모터 드라이버
ENA: A모터 PWM 신호
IN1: A모터 신호1
IN2: A모터 신호2
IN3 : B모터 신호1
IN4: B모터 신호2
ENB: B모터 신호
- STM32 (핀 - 신호)
ARD_D7- IN1(GPIO OUT)
ARD_D8 - IN2 (GPIO OUT)
ARD_D9 - TIM4_CH2 (ENA)
ARD_D2 -IN3 (GPIO OUT)
ARD_D4 -IN4 (GPIO OUT)
ARD_D5 - TIM1_CH4 (ENB)
해당 핀으로 맵핑해주었다. TIM1_CH4, TIM4_CH2 에서는 PWM Generation이 일어나며, Internal Clock으로 설정해주었었다.
- Prescaler : 클럭신호를 분배하는것으로, 설정되있는 클럭신호가 상당히 높으므로 어느정도 나눠주는 값을 입력한다. 예시에는 127로 하였기에 나도 그렇게 했다.
Prescaler의 값을 1000으로 하면 10Mhz/10000이므로 1000hz의 주파수를 가진다.
- Counter Period : 카운터의 주기를 정하는 것이다. 1000hz를 1초에 1주기로 돌게 하고 싶다면 1000으로 설정하고, 1초에 10번 주기를 돌게하고 싶다면, 100을 입력한다. 나는 예제처럼 625로 설정했다.
코드
HAL 드라이버 에서 주는 코드를 사용했다.
HAL_TIM_PWM_Start - PWM시작
HAL_TIM_SET_ COMPARE - PWM_ DUTY 조절
input1(3), input(2)4 에1 0, 0 1 시, 전진 후진 인데 모터 A인 D7, D8은 반대임을 확인했다.
아마 모터극성이 잘못 연결되어있는듯 하다.
1년전쯤 Arduino 우노로 작동시킨 자동차에서 보드만 바꿔서 해보고 있다.
'STM32 > 프로젝트' 카테고리의 다른 글
[STM32] 4. 로봇 팔 / 배달 (0) | 2024.06.26 |
---|---|
[STM32] 3.적외선 센서와 모터로 라인 트레이싱 (0) | 2024.05.02 |
[STM32] 2.적외선 센서로 센서값 읽기 (0) | 2024.04.29 |