L298N是目前智能小車應(yīng)用很廣泛的價(jià)格也比較便宜的電機(jī)驅(qū)動(dòng),用來驅(qū)動(dòng)直流電機(jī)。
L298N
輸出A 輸出B 分別接兩個(gè)直流電機(jī),電機(jī)兩根線隨便接,如果發(fā)現(xiàn)兩電機(jī)方向是反著的,就調(diào)換下接線就ok了。
12V供電 這個(gè)是外部電源為驅(qū)動(dòng)板供電的接口,一般驅(qū)動(dòng)電壓實(shí)際可以接受的輸入范圍是7~12V,此時(shí)可以使能板載的5V邏輯供電。當(dāng)使用大于12V的驅(qū)動(dòng)電壓時(shí),為了避免穩(wěn)壓芯片損壞,首先要拔掉板載5V輸出使能的跳線帽,然后在5V輸出端口外部接入5V電壓對L298N內(nèi)部邏輯供電。
5V供電 引出5V電壓接到Arduino板,給Arduino板供電(驅(qū)動(dòng)電壓7~12V)連接到UNO板的5V,同時(shí)Arduino板也要引出一條GND線,連接到L298N的GND與外部電源共地。
ENA ENB通道A使能,通道B使能,當(dāng)你不用PWM時(shí)不需要拔掉跳線帽,當(dāng)你需要PWM時(shí),將需要拔掉跳線帽,接到arduino上的模擬輸入輸出接口。
IN1 IN2 IN3 IN4邏輯輸出口,其中IN1 IN2 控制一個(gè)電機(jī)的轉(zhuǎn)動(dòng),IN3 IN4 控制另一個(gè)電機(jī)的轉(zhuǎn)動(dòng),只要一個(gè)置高 一個(gè)置低,就可以讓電機(jī)轉(zhuǎn)動(dòng)起來。
單片機(jī)源程序如下:
- #include "motor.h" //??led???
- #include "stm32f10x.h" //??STM32???
- #include "stm32f10x_rcc.h" //??STM32?RCC???
- #include "delay.h" //???
-
- void Motor_12_Config(void) //???????
- {
- GPIO_InitTypeDef GPIO_InitStructure; //??GPIO_InitTypeDef???
- RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); //??????
- RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5; //??IN??
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //??????
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //??????
- GPIO_Init(GPIOA, &GPIO_InitStructure); //???GPIOA?????,??
-
- GPIO_ResetBits(GPIOB,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6); //??????
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6; //??IN??
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //??????
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //??????
- GPIO_Init(GPIOB, &GPIO_InitStructure); //???GPIOA?????,??
- }
-
- void Motor_1_STOP(void)
- {
- IN1(High);
- IN2(High);
- }
-
- void Motor_1_PRun(void)
- {
- IN1(Low);
- IN2(High);
- }
-
- void Motor_1_NRun(void)
- {
- IN1(High);
- IN2(Low);
- }
-
- void Motor_2_STOP(void)
- {
- IN3(High);
- IN4(High);
- }
-
- void Motor_2_PRun(void)
- {
- IN3(Low);
- IN4(High);
- }
-
- void Motor_2_NRun(void)
- {
- IN3(High);
- IN4(Low);
- }
- void Motor_3_STOP(void)
- {
- IN5(High);
- IN6(High);
- }
-
- void Motor_3_PRun(void)
- {
- IN5(Low);
- IN6(High);
- }
-
- void Motor_3_NRun(void)
- {
- IN5(High);
- IN6(Low);
- }
-
- void Motor_4_STOP(void)
- {
- IN7(High);
- IN8(High);
- }
-
- void Motor_4_PRun(void)
- {
- IN7(Low);
- IN8(High);
- }
-
- void Motor_4_NRun(void)
- {
- IN7(High);
- IN8(Low);
- }
復(fù)制代碼
所有資料51hei提供下載:
stm32控制L298N源代碼.rar
(277.91 KB, 下載次數(shù): 277)
2018-11-18 17:27 上傳
點(diǎn)擊文件名下載附件
motor.h和motor.h和main.c
|