51单片机入门_江协科技_33~34_OB记录的自学笔记_LED呼吸灯与PWM直流马达调速

news2024/11/25 22:30:58

33. 直流电机驱动(PWM)

  • 33.1. 直流电机介绍
    •直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极,当电极正接时,电机正转,当电极反接时,电机反转
    •直流电机主要由永磁体(定子)、线圈(转子)和换向器组成
    •除直流电机外,常见的电机还有步进电机、舵机、无刷电机、空心杯电机等
    在这里插入图片描述

  • 33.2. 电机驱动电路

    • 直接驱动时马达只能正转,接二极管保护
    • H桥驱动可以让马达正反转
    • 马达为感性电路,通电瞬间感应电压较大,可能击穿二极管保护三极管
      在这里插入图片描述
  • 33.3. PWM介绍
    •PWM(Pulse Width Modulation)即脉冲宽度调制,在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速、开关电源等领域
    •PWM重要参数:
    频率 = 1 / TS 占空比 = TON / TS 精度 = 占空比变化步距
    在这里插入图片描述

  • 33.4. 产生PWM的方法

  • 如下图PWM的产生方法的图示,蓝色线表示计数器,定时器自增,例如0~100范围;

  • 红色线表示比较值,阈值,当蓝色线<60的时候,绿色(输出0),蓝色线>60,绿色输出1,蓝色增加到100后置0重新开始计数,自此实现PWM输出;
    在这里插入图片描述

34. LED呼吸灯&直流电机调速

  • 34.1. 用delay函数实现LED灯从灭到亮,再从亮到灭的呼吸灯效果
#include <REGX52.h>

sbit LED=P2^0;				
void Delay(unsigned int t)		//定义一个us级的delay函数
{
	while(t--);
}

void main()
{
	unsigned char Time,i;
	while(1)
	{
		for(Time=0;Time<100;Time++)		//LED从灭到亮
		{
			for(i=0;i<20;i++)	//Time自增一次,保持循环20次
			{
				LED=0;
				Delay(Time);
				LED=1;
				Delay(100-Time);
			}
		}
			for(Time=100;Time>0;Time--)		//LED从最亮到灭,实现呼吸效果
		{
			for(i=0;i<20;i++)
			{
				LED=0;
				Delay(Time);
				LED=1;
				Delay(100-Time);
			}
		}
	}
	
}
  • 34.2. DC直流马达调速
  • 需要数码管显示速度等级,开机默认0,马达不转,
  • 按下S1马达低速转,数码管显示1,
  • 再按下S1马达中速转动,数码管显示2,
  • 再按下S1马达全速运转,数码管显示3,
  • 再按下S1马达停转,数码管显示0;
  • 马达接ULN2003输出口位置的5V和D1;
  • 思路是用定时器产生100us的定时中断,每100us计数值加1,比较计数值与设定值,如果小于设定值,输出为0,大于设定值,输出1并继续计数到100后计数值清零
  • STC-ISP中找到定时器计算器,重新计算并在模块程序中修改TL0=0x9c与TH0=0xff;
    在这里插入图片描述
#include <REGX52.h>
#include "delay_xms.h"
#include "Four_Key.h"
#include "nixietube.h"
#include "Timer0.h"

sbit Motor=P1^0;
unsigned char Counter,Compare;
unsigned char KeyNum,Speed;

void main()
{
	Timer0_Init();			//timer0改为100us
	while(1)
	{
		KeyNum=Four_Key();
		if(KeyNum==1)
		{
			Speed++;
			Speed%=4;		//自增到4置零,快速置0方法
			if(Speed==0){Compare=0;}
			if(Speed==1){Compare=5;}		
			if(Speed==2){Compare=50;}	
			if(Speed==3){Compare=100;}	
		}
		NixieTube(1,Speed);
	}
	
}

void Timer0_Routine() interrupt 1
{

	TL0 = 0x9c;		//设置定时初值
	TH0 = 0xff;		//设置定时初值
	Counter++;		//计数器自增
	Counter%=100;	//COUNTER 100计数后置零,等同if counter>=100, counter=0
	if(Counter<Compare)
	{
		Motor=1;	
	}
	else
	{
		Motor=0;
	}
}
  • Proteus中可以简单模拟调速,貌似0速停转做不到

  • 在Proteus中搜索 DC MOTOR
    在这里插入图片描述

  • 插入到图中并接线如图,POWER给+5V
    在这里插入图片描述

  • 双击插入的马达,我稍微修改了一下参数,感觉这样模拟效果好一些,默认电压12V,torque:50%
    在这里插入图片描述

  • 开发板实测没问题,Proteus仿真如下;
    在这里插入图片描述

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

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

相关文章

winform 入门篇 -- 第15章 表格视图

表格控件 表格视图 DataGridView &#xff0c;即表格控件提行多行多列的表格状的数据展示 演示: 以表格控件来展示学生数据。。 每个单元格 都可以进行独立的编写 &#xff08;与上节得不同&#xff09; 基本操作: 1 添加一个表格控件 DataGridView 2 设置列数、列名 属…

HarmonyOS Next 视频弹幕功能

视频弹幕功能 介绍 本示例介绍如何使用ohos.danmakuflamemaster和ohos.gsyvideoplayer开发支持视频弹幕的播放器。可以自定义弹幕样式、占据屏幕宽度&#xff0c;发送弹幕&#xff0c;开关弹幕视图。 效果图预览 使用说明 点击播放按钮&#xff0c;进行视频播放&#xff0c…

STM32 USB虚拟串口

电路原理图 usb部分 晶振部分 usb与单片机连接 配置信息 sys配置信息 rcc配置信息 usb配置信息 虚拟串口配置信息 时钟配置信息 项目配置信息 代码 包含文件 主函数代码 实验效果 修改接收波特率依然可以正常接收&#xff0c;也就是说单片机可以自动适应上位机的波特率设置。…

2023年图灵奖揭晓:Avi Wigderson的辉煌成就与深远影响

2023年图灵奖揭晓&#xff0c;你怎么看&#xff1f; 2023年图灵奖&#xff0c;最近刚刚颁给普林斯顿数学教授 Avi Wigderson&#xff01;作为理论计算机科学领域的领军人物&#xff0c;他对于理解计算中的随机性和伪随机性的作用&#xff0c;作出了开创性贡献。 方向三&#xf…

免费泛域名SSL如何申请,和通配符有什么区别

-----让我们明确什么是泛域名。所谓泛域名&#xff0c;是指使用星号&#xff08;*&#xff09;作为子域名的占位符&#xff0c;它可以匹配任意子域名。-----而通配符在域名中&#xff0c;它可以出现在主域名的任何位置&#xff0c;它可以用于主域名和子域名的保护。 主要应用场…

握手问题(蓝桥杯)

文章目录 握手问题【问题描述】答案&#xff1a;1204解题思路模拟 握手问题 【问题描述】 小蓝组织了一场算法交流会议&#xff0c;总共有 50 人参加了本次会议。在会议上&#xff0c;大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手&#…

OceanBase 4.3 列存存储格式和列存索引存储格式

以 t1 表和索引为例子&#xff0c;下面两张图说明了存储层如何存储数据。 create table t1 (id1 int, id2 int, name varchar(10), salary int, primary key(id1, id2)) with column group (each column);create index idx (name) storing(salary) with column group(each co…

突破“三个九”!离子阱量子计算再创新高

如果把量子计算比作一场球赛&#xff0c;Quantinuum无疑又打了一记漂亮的好球。实际上&#xff0c;结合今年春季在量子体积、逻辑量子比特和布线问题等方面的进展&#xff0c;这个团队已经接近于完成一场完美的比赛。 3月&#xff0c;Quantinuum的研究人员证明了QCCD架构的可扩…

MYSQL08_页的概述、内部结构、文件头、文件尾、最大最小记录、页目录、区段表

文章目录 ①. 页的概述、大小②. 页的内部结构③. 第一部分 - 文件头④. 第一部分 - 文件尾⑤. 第二部分 - 空闲、用户记录、最大最小⑥. 第三部分 - 页目录⑦. 第三部分 - 页面头部⑧. 从数据页角度看B树⑨. 区、段和表、碎片区 ①. 页的概述、大小 ①. 数据库的存储结构&…

小行星碰撞

题目链接 小行星碰撞 题目描述 注意点 两个小行星相互碰撞&#xff0c;较小的小行星会爆炸如果两颗小行星大小相同&#xff0c;则两颗小行星都会爆炸每一颗小行星以相同的速度移动正负表示小行星的移动方向&#xff08;正表示向右移动&#xff0c;负表示向左移动&#xff09…

day81 session会话 文件上传

知识点&#xff1a; session 文件上传 一 session 1&#xff09;session&#xff1a;会话 在服务器端存储信息 指客户与服务器的会话 当用户通过浏览器访问服务器的某个页面时&#xff0c;在服务器开辟一个内存空间session 每个session 有唯一的id 2&#xff09;session过期 …

安全开发实战(3)--存活探测与端口扫描

目录 安全开发专栏 前言 存活探测 端口扫描 方式一: 1.3.1 One 1.3.2 Two 1.3.3 批量监测 方式二: 1.3.1 One 1.3.2 Two 1.3.3 Three 1.3.4 扫描ip地址,提取出开放端口和协议 ​编辑 1.3.5 批量扫描(最终完成版) 总结 安全开发专栏 安全开发实战​http://t.csd…

javaee前后端交互

1.选择Java Enterprise创建项目 2.勾选Web Profile 3.项目名称 4.创建包和类 5.继承HttpServlet并重写方法doGet和doPost 6.在web.xml里添加代码 7.点击Add Configuration,进去后点击加号 8.选择选项 9.调整如图&#xff0c;后选择Deployment进入 10.点击加号选择第一个 11.…

【GoWeb框架初探————Gin篇】

1. Gin 1.1 下载相应依赖 创建go项目&#xff0c;在项目下建立go.mod文件&#xff08;若有则跳过&#xff09; 命令行运行 go get github.com/gin-gonic/gin1.2 启动一个简单Web服务 package mainimport ("github.com/gin-gonic/gin""github.com/thinkerou/…

如何正确查看容器的CPU使用率

进入容器中top&#xff0c;虽然看到的PID是容器的&#xff0c;但是%Cpu的统计信息却是宿主机的。 如图 原理 进程的cpu使用率是如何计算出来的&#xff1f; 每个进程的状态是放在文件里的&#xff0c;在/proc目录下&#xff0c;每个进程有自己pid命名的文件夹&#xff0c; …

vscode 如何支持点击函数跳转

一、配置方式 我要配置的是 python 语言&#xff0c;以 python 语言为例来设置 1、在扩展商店搜索 python 并安装 2、安装完成后点击设置按钮&#xff0c;进入扩展设置 3、在扩展设置中搜索 go to definition&#xff0c;将下面红框的两项设置为 goto 4.连接远程服务器后还需…

基于go+vue的多人在线聊天的im系统

基于govue的多人在线聊天的im系统 文章目录 基于govue的多人在线聊天的im系统一、前端部分二、后端部分1、中间件middleware设计jwt和cors2、配置文件设计3、Mysql和Redis连接4、路由设计5、核心功能设计 一、前端部分 打算优化一下界面&#xff0c;正在开发中。。。 二、后端…

软件测试入门学习笔记

系统测试流程规范 一.研发模型 1.瀑布模型 从可行性研究&#xff08;或系统分析&#xff09;开始&#xff0c;需求 2.增量迭代模型 3.敏捷开发模型 二.质量模型

神经网络中正则化和正则化率的含义

在神经网络中,正则化是一种用于防止模型过拟合的技术。过拟合是指模型在训练数据上表现得很好,但是对于未见过的新数据,其泛化能力却很差。正则化通过在损失函数中添加一个额外的项来惩罚模型的复杂度,从而鼓励模型学习更加简单、更加泛化的特征。 正则化的含义 正则化通常…

如何修改WordPress数据库表前缀以提高安全性

WordPress作为世界上最受欢迎的内容管理系统之一&#xff0c;吸引了数以百万计的用户。然而&#xff0c;正因为其广泛的使用&#xff0c;WordPress网站也成为了黑客攻击的目标之一。其中一个最常见的安全漏洞是使用默认的数据库表前缀wp_&#xff0c;使得黑客能够更轻松地进行大…