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

目录

目的/效果

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);			//延时TimeLED=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);			//延时TimeLED=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);			//延时TimeLED=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);			//延时TimeLED=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.mzph.cn/diannao/41410.shtml

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

相关文章

智能光伏开发都能用到什么软件和工具?

随着全球对可再生能源的日益重视和光伏技术的快速发展&#xff0c;智能光伏开发已成为推动能源转型的重要力量。在光伏项目的全生命周期中&#xff0c;从设计、建设到运营管理&#xff0c;各种软件和工具的应用发挥着至关重要的作用。 一、光伏系统设计软件 1、PVsyst PVsyst…

Linux 端口

什么是虚拟端口 计算机程序之间的通讯&#xff0c;通过IP只能锁定计算机&#xff0c;但是无法锁定具体的程序。通过端口可以锁定计算机上具体的程序&#xff0c;确保程序之间进行沟通。 IP地址相当于小区地址&#xff0c;在小区内可以有许多用户&#xff08;程序&#xff09;&…

植物大战僵尸融合版最新版1.0下载及安装教程

《植物大战僵尸融合版》最新版1.0已经发布&#xff0c;为粉丝们带来了全新的游戏体验。这个版本由B站UP主蓝飘飘fly精心打造&#xff0c;引入了创新的植物融合玩法&#xff0c;让玩家可以享受策略和创意的结合。以下是游戏的详细介绍和安装指南&#xff1a; 游戏特色介绍 全新…

基于深度学习的图像背景剔除

在过去几年的机器学习领域&#xff0c;我一直想打造真正的机器学习产品。 几个月前&#xff0c;在参加了精彩的 Fast.AI 深度学习课程后&#xff0c;似乎一切皆有可能&#xff0c;我有机会&#xff1a;深度学习技术的进步使许多以前不可能实现的事情成为可能&#xff0c;而且开…

Java--继承

1.继承的本质是对某一批类的抽象&#xff0c;从而实现对世界更好的建模 2.extends的意思是“扩展”&#xff0c;子类是父亲的扩展 3.Java中只有单继承&#xff0c;没有多继承 4.继承关系的两个类&#xff0c;一个为子类&#xff08;派生类&#xff09;&#xff0c;一个为父类…

欧科云链大咖对话:Web3原生创新静默期,科技巨头却在两极化发展

出品&#xff5c;OKG Research 作者&#xff5c;Hedy Bi 上周末&#xff0c;欧科云链研究院接受FT中文的邀请&#xff0c;作为圆桌嘉宾参与了由FT中文网与上海交通大学上海高级金融学院联合主办的金融大师课。在圆桌环节&#xff0c;笔者与各位教授和金融行业科技创新前沿实践…

案例精选 | 聚铭网络助力南京市玄武区教育局构建内网日志审计合规体系

南京市玄武区教育局作为江苏省教育领域的先锋机构&#xff0c;其工作重点涵盖了教育政策的实施、教育现代化与信息化的融合、教育资源的优化、教育质量的提升以及教育公平的促进。在这一背景下&#xff0c;网络安全管理成为了确保教育信息化顺利推进的关键环节之一。 根据玄武…

Nacos单机部署、集群部署以及Nacos默认持久化derby数据库和配置mysql数据库

1. Nacos Windows 下载 1.1 去nacos官网下载nacos-server 发布历史 | Nacos 官网https://nacos.io/download/release-history/ 下载版本为 nacos-server-2.3.1.zip 2. Derby数据库 2.1 默认使用Derby数据库 官网下载Derby数据库即可。 Apache Derby数据库https://db.apac…

昇思25天学习打卡营第9天|MindSpore使用静态图加速(基于context的开启方式)

在Graph模式下&#xff0c;Python代码并不是由Python解释器去执行&#xff0c;而是将代码编译成静态计算图&#xff0c;然后执行静态计算图。 在静态图模式下&#xff0c;MindSpore通过源码转换的方式&#xff0c;将Python的源码转换成中间表达IR&#xff08;Intermediate Repr…

VSCode远程服务器

一、安装VSCode Windows安装Visual Studio Code(VS Code)-CSDN博客 二、VSCode中安装Remote-SSH插件 1、在应用商店中搜索Remote - SSH并安装 2、安装后会出现下面标注的图标 三、开始SSH连接 1、点击加号&#xff0c;创建SSH连接 2、输入地址&#xff0c;格式是&#xff1a;…

文件打开的系统错误分析流程

当用户出现“Open file failed”错误时&#xff0c;手动产生dump文件。 &#xff08;1&#xff09;打开资源管理器&#xff0c;选择AppNameXXX.exe进程&#xff0c;右击鼠标选择“创建转储文件” (2) 生成转储文件 3.获取用户转储文件 4.用Visual studio2015打开dump文件分析…

人工智能系列-numpy(三)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 副本和视图 副本 副本是一个数据的完整的拷贝&#xff0c;如果我们对副本进行修改&#xff0c;它不会影响到原始数据&#xff0c;物理内存不再同一位置。副本一般发生在Pytho…

Vue前端打包

关于NGINX 介绍:Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少&#xff0c;并发能力强&#xff0c;在各大型互联网公司都有非常广泛的使用。 NGiMx 官网:https://nginx.org/ conf 配置文件目录 html静态资源文件目录 lo…

html+js+css在线倒计时

代码在图片后面 点赞加关注 谢谢大佬照顾&#x1f61c; 图例 时间到前 时间到后 源代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width,…

10.09面试题目记录

艾融软件 - 线上面试题 排序算法的时间复杂度 O(n^2&#xff09;&#xff1a;冒泡&#xff0c;选择&#xff0c;插入 O(logn&#xff09;&#xff1a;折半插入排序 O(nlogn)&#xff1a;希尔&#xff0c;归并&#xff0c;快速&#xff0c;堆 O(nk)&#xff1a;桶&#xff0c;…

ListView 的简单使用及 ArrayAdapter 中参数详解

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD&#xff0c;日常还会涉及Android开发工作。 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起…

实现原理:远程过程调用(RPC)

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

图像的灰度直方图

先来认识一下灰度直方图&#xff0c;灰度直方图是图像灰度级的函数&#xff0c;用来描述每个灰度级在图像矩阵中的像素个数或者占有率。接下来使用程序实现直方图&#xff1a; 首先导入所需的程序包&#xff1a; In [ ]: import cv2 import numpy as np import matplotlib…

JAVA 发送短信信息工具类(腾讯云)

发送短信信息工具类 import cn.hutool.core.collection.CollUtil; import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.exception.TencentCloudSDKException; import com.tencentcloudapi.sms.v20210111.SmsClient; import com.tencentcloudapi…

基于Java中的SSM框架实现野生动物公益保护系统项目【项目源码+论文说明】计算机毕业设计

基于Java中的SSM框架实现野生动物公益保护系统演示 摘要 本系统按照网站系统设计的基本流程&#xff0c;遵循系统开发生命周期法和结构化方法&#xff0c;基于Java语言设计并实现了野生动物公益保护系统。该系统基于浏览器/服务器模式&#xff0c;采用JSP技术&#xff0c;后台…