【Proteus仿真】【51单片机】PWM电机调速系统设计

这篇具有很好参考价值的文章主要介绍了【Proteus仿真】【51单片机】PWM电机调速系统设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、主要功能

本项目使用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

【Proteus仿真】【51单片机】PWM电机调速系统设计

【Proteus仿真】【51单片机】PWM电机调速系统设计

【Proteus仿真】【51单片机】PWM电机调速系统设计


联系作者

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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【51单片机学习】PWM电机调速

    中断允许寄存器,详情可以看STC51单片机芯片手册第160页 TMOD、TCON详情可以看STC51单片机芯片手册第187页 51单片机中的定时器有三个,(C52比C51多了一个定时器3,但这些都统称为51单片机) 本次以 Timer0 为例进行介绍 定时器的作用: 1:用于计时系统,可实现软件计时,或者使程

    2023年04月18日
    浏览(75)
  • 51单片机-PWM调速(直流电机,智能小车的电机调速)

    这次来对PWM做一个总结 最近学习时,发现PWM控制在很多地方都会用到,比如使用PWM来控制电机的速度,使用PWM来生成想要的波形。 那么到底什么是PWM呢? PWM即 脉冲宽度调制 ,在具有惯性的系统中,可以通过对 一系列脉冲的宽度进行调制 ,来等效的获得所需要的模拟参量。

    2024年02月02日
    浏览(40)
  • 【51单片机】直流电机的驱动和PWM调速

    51单片机驱动直流电机与 PWM 调速是通过使用 51 单片机来控制直流电机的转速和方向。51 单片机通过控制电机的电流来实现驱动,并通过生成 PWM 信号来调节电机的转速。使用 PWM 调速可以使得直流电机的转速精确可控,并且减少了电机的功率损耗。在 51 单片机的控制系统中,

    2023年04月09日
    浏览(33)
  • 基于51单片机直流电机PWM调速液晶1602显示设计

    一、系统方案 本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。本文中采用了三极管组成了PWM信号的驱动系统,并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等均作了详细的

    2024年02月11日
    浏览(40)
  • 基于51单片机的电机(L298芯片,PWM调速,可加速、减速、正转、反转)

            电机是我们日常生活中比较常用的一个工具,我们经常需要使用电机来转动和拖动,完成一些任务。本次设计便用基于51单片机完成的电机转动与调速,使得电机可以正常启停、加速、减速以及正反转。          文章末尾提供资源免费下载,包括proteus仿真文件

    2024年02月06日
    浏览(40)
  • 【Proteus仿真】【51单片机】步进电机控制系统设计

    本项目使用Proteus8仿真51单片机控制器,使用ULN2003电机模块、LCD1602模块、按键模块等。 主要功能: 系统运行后,LCD1602显示电机当前运行档位、方向、状态。 可通过按键K4启动与停止,按键K1加速、按键K2减速,按键K3换向;档位可在1-5挡。 最终可实现: 按键功能:具有加速

    2024年02月12日
    浏览(38)
  • Proteus基于51单片机通过PWM脉冲调制控制电机转速_按键与串口控制转速_电机转速可测

    临近期末,学校的单片机课程需要做课程设计,主要内容是基于51单片机的可调速电机,具体要求如下,在此记录一下具体的一个解题方案。 要求利用单片机输出PWM波形,通过改变占空比,改变电枢两端电压的平均值,从而改变电动机的转速 通过按键进行手动速度调整(速度

    2023年04月14日
    浏览(56)
  • 218、仿真-基于51单片机步进电机正反转加减速度LCD1602显示Proteus仿真设计(程序+Proteus仿真+配套资料等)

    目录 一、硬件设计 二、设计功能 三、Proteus仿真图​编辑 四、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足

    2024年02月12日
    浏览(35)
  • 【【51单片机直流电机调速】】

    PWM的生成方法 先用户设定一个比较值,然后计数器定时自增。 当计数器比较值,输出0 当计数器比较值,输出1

    2024年02月15日
    浏览(35)
  • 单片机控制PWM的直流电机调速系统的设计

    单片机控制PWM的直流电机调速系统的设计  摘 要:在国民生产中,随着现代技术的发展,电力电子技术已得到了全面的发展,其技术已应用到各个领域。在各类机电系统中,由于直流电机具有良好的启动、制动和调速性能,直流电机调速系统已广泛运用于工业、航天领域的各个

    2024年02月04日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包