这个小车项目,最基础,也是最根本的内容,是让小车跑起来,如何跑?用电机!!,关键是,
车子要么四轮四个电机,要么三轮两个电机(一个万向轮不用电机,如图),
如果都分别用引脚接电池,那也不能实现走走停停吧,焊死的线只会给出一个结果,要么一直转,要么一直不转。
因此,我们必须让L298N登场
这个芯片,连接单片机,连接电池,连接电机,从而实现编程--控制电机转动
其板子引脚图如下:
A,B即控制两个不同的电机,即一个L298N可以控制两个轮子,四轮车就要两个L298N,好在四轮车都是前轮可转向,后轮一直直线,实现的操作也是比较容易
重点-接线
图中,IN1,2为M1对应的输入(编程通道),两个并着的蓝色外壳的东东为输出(给电平到电机)
如果我们要使能A,可以不拔跳线帽,这样默认为短接VCC到这个使能通道,为高电平,即可激活,低电平则不激活
按照这个表我们即可操作
如果万一跳线帽丢了,我们就在使能端接杜邦线到单片机,时钟gpio激活这个引脚,编程上给高电平,也能激活
PWM电机速度调节我们暂时不考虑,能实现正转反转停止即可
我们可以先将电池正负极直接分别接电机的两个孔(图中位置)
我们大致可以感受电机怎么驱动
在查阅资料时,gnd连电池盒负极;由于对用电引脚的不清晰,我将电池正极接在这5v供电这了,一直跑不动,其实不然,这个5V供电口是指输出的,是单片机没电时我们给到单片机供电的,我们要将正极接这个12v这里,虽然电池不一定有12V,但是会有明显的转动,电压不同,转速不同,我们后面可以用升降压模块来调节电压
这样即可初步实现小车的运行,代码呢,如下:
代码
`
void L298N_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//GPIO口激活4个口对应IN1~4
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|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);
GPIO_ResetBits(GPIOA,GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_5| GPIO_Pin_6)//全部置低电平,这个可有可无
}
void L298N_Roll(void)
{
// ENA=1;//跳线帽不拔,这里就不用写使能
GPIO_SetBits(GPIOA,GPIO_Pin_3);//通过设置gpio高低电平来控制
GPIO_ResetBits(GPIOA,GPIO_Pin_2);
GPIO_ResetBits(GPIOA,GPIO_Pin_5);
GPIO_SetBits(GPIOA,GPIO_Pin_6);
}`