目錄
前言
一、L298N的具體參數
二、L298N接線步驟
1.第一種方法:外接電源5V
2.第二種方法:外接12V電源
三、L298N的驅動邏輯實作
前言
最近做課設要用到L298N,網上搜了一堆教程,但都沒看到具體的stm32連接配接l298n的小白級教程,然後卡了很久。最後參考這位部落客的接線才做成功
以下是本篇文章正文内容,下面案例可供參考
一、L298N的具體參數
首先上圖(某寶給的的參考圖):
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLwUFRORzYq10MRpHW3BjMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmL0UDNzQDMwMjMwEjNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
二、L298N接線步驟
1.第一種方法:外接電源5V
比如說直接通過單片機的5v輸出作為外接電源供電的話,因為L298N子產品裡面穩壓管的輸入和輸出有個壓差,如果給電機的供電太低的話(5v),通過壓差後可能會降低太多,那麼邏輯控制部分所要求的5v電壓可能就達不到了,可能會導緻驅動電機時動一下停一下,此時需要将闆上5伏使能斷開(拔掉跳冒),然後外接5v的電源來給邏輯控制部分供電。(即把l298n的12v輸入與5v輸出同時接單片機的5v管腳,并且GND要與單片機共地!!!)
2.第二種方法:外接12V電源
如果說接的電源是7~12V的話(某寶賣的9v電池或者穩壓電源),就需要插上跳線帽,電源正負極接l298n的12輸入和GND,5v輸出可以空着,IN1~IN4接具體的單片機IO口。
三、L298N的驅動邏輯實作
stm32f103xxxx程式設計實作:
1.配置IO口
//配置I/O口 PA5、6
void L298N_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//設定結構體
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //開啟IO時鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5| GPIO_Pin_6;//配置要使用的IO
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//端口速度50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure);//寫入寄存器
}
2.控制電機正反轉
void L298N_Roll(void)
{
u8 i;
delay_init();
// ENA=1;
IN1=1;//正轉
IN2=0;
}
因為我做的課設并不需要控制電機正轉反轉,是以就沒有使能ENA,直接pwm控制IN1,IN2就行(如果你們的需要控制電機正反轉的話就需要拔掉ENA、ENB上的跳線帽并使能這個IO端口)
3.定義宏
#ifndef __MOTOR_H
#define __MOTOR_H
#include"sys.h"
#include"delay.h"
//#define ENA PAout(4)
#define IN1 PAout(5)
#define IN2 PAout(6)
void L298N_Init(void);
void L298N_Roll(void);
#endif
4.最後main函數調用 L298N_Init(); L298N_Roll();就行了。