標(biāo)題:
stm32控制L298N直流電機(jī)源代碼
[打印本頁(yè)]
作者:
lijianfenglijia
時(shí)間:
2018-11-18 15:56
標(biāo)題:
stm32控制L298N直流電機(jī)源代碼
L298N是目前智能小車應(yīng)用很廣泛的價(jià)格也比較便宜的電機(jī)驅(qū)動(dòng),用來(lái)驅(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電壓對(duì)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)起來(lái)。
單片機(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
下載積分: 黑幣 -5
作者:
lzy199973
時(shí)間:
2019-4-28 22:52
為什么有一個(gè)錯(cuò)誤
作者:
yhy123123
時(shí)間:
2019-5-2 19:04
有沒(méi)有電路圖和仿真圖,求回復(fù)
作者:
mustvvvics
時(shí)間:
2019-8-2 15:22
IN 怎么連接呀
作者:
707837462
時(shí)間:
2019-11-20 15:00
求motor.c 和.h文件
作者:
yuhongyu520
時(shí)間:
2020-1-19 21:21
求motor.c 和.h文件
作者:
試遣愚衷
時(shí)間:
2020-3-17 21:53
yuhongyu520 發(fā)表于 2020-1-19 21:21
求motor.c 和.h文件
上面就是。c啊
作者:
6846513513
時(shí)間:
2020-4-16 16:41
這可以直接移植到stm32f103的板子上嗎?
作者:
龔俊
時(shí)間:
2020-5-9 20:27
樓主你好,我們倆思路是一致的,我的電機(jī)只有一個(gè)能轉(zhuǎn),一個(gè)轉(zhuǎn)不了,后來(lái)我發(fā)現(xiàn)是控制IN1,IN2的GPIO口PB3,PB4不能變化,請(qǐng)問(wèn)為什么呢
作者:
龔俊
時(shí)間:
2020-5-9 20:29
我的思路和你一致,請(qǐng)問(wèn)樓主,為什么我同時(shí)設(shè)置GPIOB3~6作為L(zhǎng)298N的IN1~IN4,而且我同時(shí)設(shè)置為推挽輸出,為什么PB3,PB4不能變化呢
作者:
han由心生
時(shí)間:
2020-10-7 17:23
樓主有沒(méi)有實(shí)物連線圖啊,科技小白····
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1