一.系统概述
系统使用STM32单片机进行主控,使用L298N进行电机驱动,使用按键可以直接控制电机的开启和关闭、加减速以及方向的改变。
二.仿真概述
1. 系统内使用按键控制电机的开启和关闭,加减速按键可以直接控制电机的速度
2. 按下方向按键可以切换顺时针和逆时针电机旋转方向
三.程序设计
#include <main.h>
u8 Key;//按键检测
u8 V[]={0,20,40,60,80,100};
u8 G=1;//档位
u8 S=0;//启停
u8 D=0;//方向
void Init_Test(void);
void Display(void);
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//2:2
Init_Test();
while(1)
{
Key_Scan(&Key);
OLED_ShowNum(4,1,Key,1);
Display();
if(Key==4)
{
S=~S;
Key=0;
}
if(Key==3)
{
D=~D;
Key=0;
}
if(Key==1|Key==2)
{
if(Key==1)
{
G++; if(G>5) G=1;
}
else if(Key==2)
{
G--; if(G<1) G=1;
}
Key=0;
}
PWM_SetCompare1(V[G]);
if(S)
{
OLED_ShowNum(3,3,G,1);
OLED_ShowString(1,3,"ON ");
if(D)
{
OLED_ShowString(2,3,"ACW");
LedC1_0;
LedC2_1;
IN1_0;
IN2_1;
}
else
{
OLED_ShowString(2,3,"CW ");
LedC2_0;
LedC1_1;
IN1_1;
IN2_0;
}
}
else
{
OLED_ShowString(1,3,"OFF");
OLED_ShowString(2,3," ");
OLED_ShowString(3,3," ");
LedC2_0;
LedC1_0;
IN1_0;
IN2_0;
}
}
}