一. 系统概述
系统通过 STM32单片机 实现主控功能,结合 L298N 驱动电机。用户可以通过按键直接控制电机的启动和停止,调整电机的加减速,以及改变电机的旋转方向。
二. 仿真概述
- 电机控制:系统允许使用按键来控制电机的开关状态,并通过加减速按键来调整电机的转速。
- 方向切换:按下方向按键可以在电机的顺时针和逆时针旋转方向之间切换。
三.程序设计
#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;
}
}
}
24-32f-39