51单片机STC89C52RC——14.1 直流电机调速

news2024/11/22 9:13:46

目录

目的/效果

1:电机转速同步LED呼吸灯

2 通过独立按键 控制直流电机转速。

一,STC单片机模块

二,直流电机 

2.1 简介

2.2 驱动电路

2.2.1 大功率器件直接驱动

2.2.2 H桥驱动

正转

反转

2.2.3 ULN2003D 引脚、电路

2.3 PWM(脉冲宽度调制)

 2.3.1 什么是PWM

2.3.2 PWM的频率

2.3.3 PWM的周期

2.3.4 占空比

2.3.5 PWM的主要用途 

2.4 控制流程

2.4.1 模拟LED呼吸灯控制电机转速

2.4.2 独立按键控制电机转速(类似于电风扇档位切换)

三,创建Keil项目

四,代码 

4.1 电机转速同步LED呼吸灯

4.2 独立按键对电机调速 

五,代码编译、下载到51单片机


目的/效果

1:电机转速同步LED呼吸灯

2 通过独立按键 控制直流电机转速。

K1:降低速度

K2:增大速度

一,STC单片机模块

二,直流电机 

2.1 简介

直流电机是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。一般的直流电机有两个电极,当电极正接时,电机正转,当电极反接时,电机反转 。直流电机主要由永磁体(定子)、线圈(转子)和换向器组成 。除直流电机外,常见的电机还有步进电机、舵机、无刷电机、空心杯电机等。

2.2 驱动电路

2.2.1 大功率器件直接驱动

电路图

这种只能朝一个方向转。

电路导通图

这里为什么有个续流二极管,因为电机、继电器 都是电感(物理惯性导致电路电压超过电源电压)元件 。

在断开电路瞬间,会产生很高的电压。对晶体管有击穿损伤。我们来看断开瞬间的电流方向。

有了这个续流二极管,可以形成回路,降低对晶体管的击穿损害

2.2.2 H桥驱动

形状像“H”所以称为H桥,可以实现程序控制电机正传和反转

正转

反转

2.2.3 ULN2003D 引脚、电路

这里我们将VCC接电机一个引脚,P10引脚对应OUT1,

将P10引脚输出0  (高电平)电机转动

将P10引脚输出1  (低电平)电机停止转动

断开瞬间电流方向

其内部基本电路是达林顿管 

 

2.3 PWM(脉冲宽度调制)

 本节与《51单片机STC89C52RC——10.1 LED呼吸灯-CSDN博客》保持一致。

 2.3.1 什么是PWM

​脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。 ​

2.3.2 PWM的频率

是指1秒钟内信号从高电平到低电平再回到高电平的次数(一个周期);

也就是说一秒钟PWM有多少个周期
单位: Hz
表示方式: 50Hz 100Hz

2.3.3 PWM的周期

T=1/f
周期=1/频率
50Hz = 20ms 一个周期

如果频率为50Hz ,也就是说一个周期是20ms 那么一秒钟就有 50次PWM周期

2.3.4 占空比


是一个脉冲周期内,高电平的时间与整个周期时间的比例
单位: % (0%-100%)
表示方式:20% 

周期为T
T1为高电平时间
T2 为低电平时间

假设周期T为 1s 那么频率就是 1Hz 那么高电平时间0.5s ,低电平时间0.5s 总的占空比就是 0.5 /1 =50%

 控制LED的通断时间比例,占空比。如下图

2.3.5 PWM的主要用途 

PWM对电机转速的控制
占空比可以实现对电机转速的调节,我们知道,占空比是高电平在一个周期之中的比值,高电平的所占的比值越大,占空比就越大,对于直流电机来讲,电机输出端引脚是高电平电机就可以转动,当输出端高电平时,电机会转动,但是是一点一点的提速,在高电平突然转向低电平时,电机由于电感有防止电流突变的作用是不会停止的,会保持这原有的转速,以此往复,电机的转速就是周期内输出的平均电压值,所以实质上我们调速是将电机处于一种,似停非停,似全速转动又非全速转动的状态,那么在一个周期的平均速度就是我们占空比调出来的速度了,

在电机控制中,电压越大,电机转速越快,而通过PWM输出不同的模拟电压,便可以使电机达到不同的输出转速

当然,在电机控制中,不同的电机都有其适应的频率 频率太低会导致运动不稳定,如果频率刚好在人耳听觉范围,有时还会听到呼啸声。频率太高的电机可能反应不过来

正常的电机频率在 6-16kHZ之间为好

PWM对舵机的控制
舵机的控制就是通过一个固定的频率,给其不同的占空比的,来控制舵机不同的转角

舵机的频率一般为频率为50HZ,也就是一个20ms左右的时基脉冲,而脉冲的高电平部分一般为0.5ms-2.5ms范围。来控制舵机不同的转角

500-2500us的PWM高电平部分对应控制180度舵机的0-180度

以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;

2.4 控制流程

2.4.1 模拟LED呼吸灯控制电机转速

与LED呼吸灯控制方式相同,分为两个阶段:
第一阶段:由暗到亮。就是输出占空比由0%到100%以1%为间隔递增,共100个周期。
第二阶段:由亮到暗。就是输出占空比由100%到0%以1%为间隔递减,共100个周期。

这里我们直接复用LED呼吸灯的代码。加一个电机供电引脚的输出。

        for(Time=0;Time<100;Time++)		//改变亮灭时间,由暗到亮
		{
			for(i=0;i<20;i++)			//计次延时
			{
				LED=0;					//LED亮
				Motor=1;				//电机转
				Delay(Time);			//延时Time
				LED=1;					//LED灭
				Motor=0;				//电机停
				Delay(100-Time);		//延时100-Time
			}
		}
		for(Time=100;Time>0;Time--)		//改变亮灭时间,由亮到暗
		{
			for(i=0;i<20;i++)			//计次延时
			{
				LED=0;					//LED亮
				Motor=1;				//电机转
				Delay(Time);			//延时Time
				LED=1;					//LED灭
				Motor=0;				//电机停
				Delay(100-Time);		//延时100-Time
			}
		}

2.4.2 独立按键控制电机转速(类似于电风扇档位切换)

通过独立按键调整占空比,每个档位固定一个占空比,实现电风扇档位切换。

三,创建Keil项目

详细参考:51单片机STC89C52RC——创建Keil项目-CSDN博客

四,代码 

代码详情 请参考 STC89C52RC: 51单片机学习资料、代码

4.1 电机转速同步LED呼吸灯

#include <REGX52.H>

sbit LED=P2^0;		//LED 呼吸灯
sbit Motor=P1^0;	//电机供电
/**
 * 函    数:延时函数
 * 参    数:无
 * 返 回 值:无
 */
void Delay(unsigned int t)
{
	while(t--);
}
/**
 * 函    数:主函数
 * 参    数:无
 * 返 回 值:无
 */
void main()
{
	unsigned char Time,i;
	while(1)
	{
		for(Time=0;Time<100;Time++)		//改变亮灭时间,由暗到亮
		{
			for(i=0;i<20;i++)			//计次延时
			{
				LED=0;					//LED亮
				Motor=1;				//电机转
				Delay(Time);			//延时Time
				LED=1;					//LED灭
				Motor=0;				//电机停
				Delay(100-Time);		//延时100-Time
			}
		}
		for(Time=100;Time>0;Time--)		//改变亮灭时间,由亮到暗
		{
			for(i=0;i<20;i++)			//计次延时
			{
				LED=0;					//LED亮
				Motor=1;				//电机转
				Delay(Time);			//延时Time
				LED=1;					//LED灭
				Motor=0;				//电机停
				Delay(100-Time);		//延时100-Time
			}
		}
	}
}

4.2 独立按键对电机调速 

#include <REGX52.H>
#include "Timer0.h" 
#include "key.h"
#include "LCD1602.h"
#include "Delay.h"
unsigned char Counter,//计数器
              KeyNum,//按键值
              Speed=1,//档位
              Compare=35;//占空比
/**
 * 函    数:主函数
 * 参    数:无
 * 返 回 值:无
 */
void main()
{ 
	Timer0_Init();	//初始化定时器 
	LCD_Init();			
	while(1)
	{
		LCD_ShowNum(1,1,Speed,3);
		KeyNum=GetKey();
		if(KeyNum==1)
		{
			Speed--;
		}
		else if(KeyNum==2)
		{
			Speed++;
		}
		Speed=Speed%5;
		if(Speed==0)Compare=0;
		if(Speed==1)Compare=35;
		if(Speed==2)Compare=50;
		if(Speed==3)Compare=75;
		if(Speed==4)Compare=100; 
	}
}
/**
 * 函    数:定时器0中断函数
 * 参    数:无
 * 返 回 值:无
 */
void Timer0_Routine() interrupt 1
{
	TL0 = 0x91;			//设置定时初值
	TH0 = 0xFF;			//设置定时初值
	Counter++;
	Counter%=100;
	if(Counter>=Compare)
	{
		P2_0=1;//led 熄灭
		P1_0=0;//电机断电
	}
	else {
		P2_0=0;//led 亮起
		P1_0=1;//电机通电
	}
}

五,代码编译、下载到51单片机

代码编译请参考

《51单片机STC89C52RC——代码编译-CSDN博客》

代码下载请参考

《51单片机STC89C52RC——STCAI-ISP代码下载-CSDN博客》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1899024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】 解决 C++ 语言报错:Segmentation Fault

文章目录 引言 段错误&#xff08;Segmentation Fault&#xff09;是 C 编程中常见且令人头疼的错误之一。段错误通常发生在程序试图访问未被允许的内存区域时&#xff0c;导致程序崩溃。本文将深入探讨段错误的产生原因、检测方法及其预防和解决方案&#xff0c;帮助开发者在…

智能插座搭配BIOS唤醒功能实现远程定时开关机

智能插座 智能插座凭借其强大的联网能力&#xff0c;不仅能够实现远程操控开关电源&#xff0c;部分高端型号更是集成了电量统计与自动化操作功能&#xff0c;为用户带来了前所未有的便捷体验。以下是我对几款体验过的智能插座的简要评价&#xff0c;因版本差异可能有所不同。…

tongweb+ths6011测试websocket(by lqw)

本次使用的tongweb版本7049m4&#xff0c;测试包ws_example.war&#xff08;在tongweb安装目录的samples/websocket下&#xff09;&#xff0c;ths版本6011 首先在tongweb控制台部署一下ws_example.war,部署后测试是否能访问&#xff1a; 然後ths上的httpserver.conf的參考配…

如何用SRM管理供应商,轻松又高效?

在企业运营的日常里&#xff0c;你是否常常为那些繁杂的供应商信息而头疼&#xff1f;每当项目紧急需要某个物料时&#xff0c;你是否会为了寻找可靠的供应商而焦头烂额&#xff1f;更别提那些层出不穷的交货延期、质量问题&#xff0c;以及难以追踪的合同条款了。这些问题&…

无人机有哪些关键技术?

一、控制技术 无人机的核心还是在控制上&#xff0c;飞控系统的可靠性、稳定性及可扩展性是其中重要的指标。可靠性上&#xff0c;除了器件选型之外&#xff0c;目前主要靠多余度来增加&#xff1b;稳定性主要体现在多场景下仍能保持良好的工作状态&#xff0c;主要靠算法来进…

一对一服务,定制化小程序:NetFarmer助力企业精准触达用户

在当今这个日新月异的数字化时代&#xff0c;小程序以其独特的魅力和广泛的应用场景&#xff0c;正逐步成为企业出海战略中的璀璨明星。NetFarmer&#xff0c;作为业界领先的数字化出海服务商&#xff0c;不仅深谙HubSpot营销自动化的精髓&#xff0c;更在小程序领域展现了卓越…

AlmaTech股份有限公司如何通过有效的营销本地化解锁全球市场

在当今全球化经济中&#xff0c;企业必须调整营销策略&#xff0c;以引起不同地区不同受众的共鸣。营销本地化&#xff0c;包括定制营销材料以满足各种市场的文化、语言和监管要求&#xff0c;对于实现这一目标至关重要。本案例研究探讨了领先的电子商务公司AlmaTech股份有限公…

C++基于协同过滤算法的超市外卖小程序-计算机毕业设计源码62482

摘要 随着社会生活节奏加快和消费习惯的变化&#xff0c;外卖服务成为人们日常生活中不可或缺的一部分。超市外卖作为新兴业态备受关注&#xff0c;然而传统外卖平台在推荐精准度和用户体验方面存在挑战。 本研究旨在基于协同过滤算法&#xff0c;结合C语言和MySQL数据库&#…

剪辑抽帧技巧有哪些 剪辑抽帧怎么做视频 剪辑抽帧补帧怎么操作 剪辑抽帧有什么用 视频剪辑哪个软件好用在哪里学

打破视频节奏&#xff0c;让作品告别平庸。抽帧剪辑可以改变视频叙事节奏&#xff0c;人为制造冲突、转折、卡顿的效果。这种剪辑方式&#xff0c;不仅可以推进剧情发展&#xff0c;还能吸引观众的注意力&#xff0c;有效防止观影疲劳。有关剪辑抽帧技巧有哪些&#xff0c;剪辑…

【读点论文】基于二维伽马函数的光照不均匀图像自适应校正算法

基于二维伽马函数的光照不均匀图像自适应校正算法 摘 要:提出了一种基于二维伽马函数的光照不均匀图像自适应校正算法.利用多尺度高斯函数提取出场景的光照分量,然后构造了一种二维伽马函数,并利用光照分量的分布特性调整二维伽马函数的参数,降低光照过强区域图像的亮度值,提高…

MySQL数据库增删改查示例

一、 1、登陆数据库 2、创建数据库zoo 3、修改数据库zoo字符集为gbk 4、选择当前数据库为zoo 5、查看创建数据库zoo信息 6、删除数据库zoo 二、创建俩张表 先创建一个数据库并使用&#xff1a; 创建员工表 创建员工绩效表 三、修改表 1.在员工表的基本上增加一个image系列&a…

基于芯片CSU8RP1382开发的咖啡秤方案

咖啡电子秤芯片方案精确值可做到分度值0.1g的精准称重,并带有过载提示、自动归零、去皮称重、压低报警等功能&#xff0c;工作电压在2.4V~3.6V之间&#xff0c;满足于咖啡电子秤的电压使用。同时咖啡电子秤PCBA设计可支持四个单位显示&#xff0c;分别为&#xff1a;g、lb、oz、…

【WSL】常用命令

文章目录 启动 WSL列出 Linux 发行版安装 Linux 发行版设置默认的 Linux 发行版卸载 Linux 发行版更新 WSL检查 WSL 状态启动和关闭 WSL跨系统文件访问其他命令 Windows Subsystem for Linux (WSL) 提供了一系列命令用于管理 Linux 发行版在 Windows 系统中的运行。下面是一些常…

小阿轩yx-LVS+Keepalived群集

小阿轩yx-LVSKeepalived群集 Keepalived 双机热备份基础知识 起初是专门针对 LVS 设计的一款强大的辅助工具主要用来提供故障切换(Failover)和健康检査(HealthChecking)功能—判断LVS 负载调度器、节点服务器的可用性当 master 主机出现故障及时切换到backup 节点保证业务正常…

ORB-SLAM3源码分析(案例分析)

一、ORB-SLAM3简介 ORB-SLAM3 (Oriented FAST and Rotated BRIEF SLAM 3) 是一种视觉SLAM&#xff08;Simultaneous Localization and Mapping&#xff0c;同时定位与地图构建&#xff09;系统&#xff0c;用于机器人和计算机视觉领域。它是ORB-SLAM系列的第三个版本&#xff…

吴恩达深度学习笔记:机器学习策略(2)(ML Strategy (2)) 2.7-2.8

目录 第三门课 结构化机器学习项目&#xff08;Structuring Machine Learning Projects&#xff09;第二周&#xff1a;机器学习策略&#xff08;2&#xff09;(ML Strategy (2))2.7 迁移学习&#xff08;Transfer learning&#xff09; 第三门课 结构化机器学习项目&#xff0…

鸿蒙开发设备管理:【@ohos.vibrator (振动)】

振动 说明&#xff1a; 开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 imp…

Day05-组织架构-角色管理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.组织架构-编辑部门-弹出层获取数据2.组织架构-编辑部门-编辑表单校验3.组织架构-编辑部门-确认取消4.组织架构-删除部门5.角色管理-搭建页面结构6.角色管理-获取数…

蓝蜂网关接入天津粉尘涉爆企业风险监测预警系统指导案例

一、应用背景 按天津市应急管理部要求&#xff0c;参照《粉尘涉爆企业安全生产风险监测预警数据接入规范》。天津市已有的粉尘涉爆企业需接入物联网感知汇聚平台&#xff0c;实现数据监测。在市平台系统上实现统一的数据查询分析。通过蓝蜂MQTT网关LF220来实现与物联网感知汇聚…

磁钢生产领域上下料解决方案

随着智能制造技术的不断革新&#xff0c;磁钢生产领域正逐步引入自动化生产线。然而&#xff0c;传统的人工上下料方式存在诸多问题&#xff0c;难以满足现代生产需求。富唯智能提出了一款复合机器人磁钢上下料解决方案&#xff0c;通过先进的自动化技术&#xff0c;提高生产效…