一、首先来介绍一下L298N板载位置的功能:
文章图片
二、几种供电方式。
1、L298N供电驱动5V的小马达时:
供电:L298N的12V和5V都接5V供电,GND不但要接驱动电源的GND(如果是和别的单片机或者其他系统连接在一起的时候,一定要从这里再引出一根GND和单片机或者系统的GND相连,使电压有参考电平)
逻辑输入:IN1和IN2为一组,对应OutA(输出A);
【单片机|L298N、电机、单片机的线路连接】IN3和IN4为一组,对应OutB(输出B)。
以左边马达为例当IN1=0,IN2=1时为正转。IN1=1,IN2=0时为反转。待机则全为0,刹车则全为1
文章图片
(不建议该方法,可能发生提供电压较小,电机转速不足的情况)
2、电源输入7~12V电压时,5v的位置不用接电源,该位置可输出一个5v,用于给单片机供电,L298N的GND接单片机的GND,( 否则没有参考电压,不能进行正常控制 )。
文章图片
(强烈建议使用该方法) 3、当输入电压大于12v时,需要拔掉电源旁的跳线帽,5V端需要接入5v的电压,GND还是接GND
文章图片
拔掉跳线帽原因:用5V电源给芯片供电。如果不断开板载使能跳线帽的话,可能会损坏内置的7805的稳压芯片。
三、L298n的驱动(以通道A为例)
文章图片
3.1 对于逻辑输入引脚IN1、IN2
控制电机的正反转,将其接在单片机的I/O口上控制即可。
文章图片
3.2 对于ENA,通道使能引脚。
若不考虑电机的转速,可接为高电平或低电平控制接通还是关断,上图就是通过一个跳线帽接到高电平使能。
若需要控制电机的转速,可将其连接在PWM输出上,通过调节PWM的占空比,以此来达到控制转速的目的。
/*
****************************************************
// 硬件连接:P1.0----IN1
//P1.1----IN2
//P1.2----ENA
//电机两端分别接OUT1和OUT2
****************************************************
*/
#include
#define uchar unsigned char
#define uint unsigned int
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit ENA=P1^2;
uchar k;
uint cycle=0,T=2048;
void delay_ms(uchar z);
void delay_us(uint n);
/*******************主函数**************************/
void main()
{
while(1)
{
cycle=0;
IN1=1;
//正转
IN2=0;
for(k=0;
k<200;
k++)
{
delay_ms(10);
//PWM占空比为50%,修改延时调整PWM脉冲
ENA=~ENA;
}IN1=0;
//反转
IN2=1;
for(k=0;
k<200;
k++)
{
delay_ms(10);
//PWM占空比为50%,修改延时调整PWM脉冲
ENA=~ENA;
}IN1=1;
//自动加速正转
IN2=0;
while(cycle!=T)
{ ENA=1;
delay_us(cycle++);
ENA=0;
delay_us(T-cycle);
}IN1=0;
//自动减速反转
IN2=1;
while(cycle!=T)
{ ENA=1;
delay_us(cycle++);
ENA=0;
delay_us(T-cycle);
}
}
}
/******************毫秒延时函数*************************/
void delay_ms(uchar z)
{
uchar i,j;
for(i=z;
i>0;
i--)
for(j=110;
j>0;
j--);
}
/****************微秒延时函数******************************/
void delay_us(uint n)
{
while(n--);
}
推荐阅读
- 单片机设计|毕业设计 - 题目(基于stm32的智能扫地机器人设计与实现)
- 硬件|硬件篇(教你做STM32蓝牙小车(基于STM32F103ZET6))
- K210|亚博智能K210开发板学习笔记(二)——GPIO
- 嵌入式英语|嵌入式datasheet-英语-中文-1
- 单片机|c语言回调函数的使用及实际作用详解
- stm32|基于STM32的智能门禁卡片(开题报告)
- K210|亚博智能K210开发板学习笔记
- ##Lora|STM32WL55-NUCLEO开发(1)----STM32WL&LoRaWAN介绍
- 单片机|STM32CUBEMX生成freeRTOS代码的时候出现警告