一、主要功能
本项目使用Proteus8仿真51单片机控制器,使用L298N电机模块、数码管模块、按键模块、LED指示灯模块等。
系统运行后,数码管显示电机当前运行档位和速度。
可通过按键K4启动与停止,按键K1加速、按键K2减速,按键K3换向;
档位可在1-5挡。
最终可实现:
按键功能:具有加速、减速、正转、反转、启动和停止;
显示功能:数码管显示档位、电机转速;
指示功能:LED指示电机正转、反转;
测速功能:使用霍尔传感器实现电机测速;
电机驱动:L298N驱动直流电机;
二、硬件资源
1、51单片机核心模块
2、L298N电机驱动模块
3、数码管显示模块
4、按键模块
5、LED电路
三、软件设计
1、主机程序
/*
作者:嗨小易(QQ:3443792007)
*/
//功能引脚定义
sbit ZZ_LED=P2^0;
sbit FZ_LED=P2^1;
//定义结构体
_sys_ctrl sys_ctrl;
//系统参数设定
void sys_parm_set(void)
{
u8 key=0;
key=key_scan(0);
//开启/停止
if(key==KEY4_PRESS)
{
sys_ctrl.run=!sys_ctrl.run;
if(sys_ctrl.run)
{
TR1=1;EX0=1;
if(sys_ctrl.dir==0){ZZ_LED=0;FZ_LED=1;}
else {ZZ_LED=1;FZ_LED=0;}
}
else
{
TR1=0;EX0=0;
ZZ_LED=1;FZ_LED=1;
}
dc_motor_dir_ctrl(sys_ctrl.dir);
dc_motor_sta(sys_ctrl.run);
}
//当处于运行状态时才能调速、切换方向
if(sys_ctrl.run==1)
{
//加速
if(key==KEY1_PRESS)
{
sys_ctrl.gear++;
if(sys_ctrl.gear>5)sys_ctrl.gear=1;
pwm_set_duty_cycle(sys_ctrl.gear*20);
}
//减速
else if(key==KEY2_PRESS)
{
sys_ctrl.gear--;
if(sys_ctrl.gear<1)sys_ctrl.gear=5;
pwm_set_duty_cycle(sys_ctrl.gear*20);
}
//换向
else if(key==KEY3_PRESS)
{
sys_ctrl.dir=!sys_ctrl.dir;
if(sys_ctrl.dir==0){ZZ_LED=0;FZ_LED=1;}
else {ZZ_LED=1;FZ_LED=0;}
dc_motor_dir_ctrl(sys_ctrl.dir);
}
}
}
//采集数据显示
void sys_data_show(void)
{
u8 buf[4];
while(sys_ctrl.run==1)
{
//测速完成
if(sys_ctrl.sta==1)
{
sys_ctrl.sta=0;
sys_ctrl.cnt=0;
EX0=1;//打开计数
}
buf[0]=gsmg_code[sys_ctrl.gear%10]|0x80;
// buf[1]=gsmg_code[sys_ctrl.speed/100];
buf[1]=0;
buf[2]=gsmg_code[sys_ctrl.speed%100/10];
buf[3]=gsmg_code[sys_ctrl.speed%100%10];
smg_display(buf,1);
break;
}
}
//应用控制系统
void appdemo_show(void)
{
ENA=0;
SMG_A_DP_PORT=0;
sys_parm_init();//系统参数初始化
exti0_init();
time1_init();
pwm_init(0XFF,0XD1,100,0);//初始时,PWM占空比为0
dc_motor_dir_ctrl(sys_ctrl.dir);//默认正转
pwm_set_duty_cycle(sys_ctrl.gear*20);//占空比40%
while(1)
{
sys_parm_set();
sys_data_show();
}
}
四、实验现象
B站演示视频:https://space.bilibili.com/444388619
文章来源:https://www.toymoban.com/news/detail-416393.html
联系作者
B站演示视频:https://space.bilibili.com/444388619
专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。文章来源地址https://www.toymoban.com/news/detail-416393.html
到了这里,关于【Proteus仿真】【51单片机】PWM电机调速系统设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!