PWM技术的应用

目录

PWM技术简介

PWM重要参数

PWM实现呼吸灯

脉宽调制波形

PWM案例

电路图

keil文件

直流电机

直流电机的控制

直流电机的驱动芯片L293D

L293D引脚图

L293D功能表

直流电机案例

电路图

keil文件

步进电机

步进电机特点

步进电机驱动芯片L298

L298引脚图

L298逻辑功能表

四相步进电机原理

步进电机案例

电路图

keil文件

PWM技术简介

  • PWM即脉宽调制技术,在具有惯性的系统中,可通过对一系列脉冲的宽度进行调制,来等效的获得所需要的模拟参量,常适用于电机控速度,开关电源等领域
  • 占空比:在一个周期内,其高电平持续的时间除以整个周期的值就是占空比;其一般用D表示。

PWM重要参数

  • 频率:f=1/Ts
  • 占空比:D=Ton/Ts

注意:

  • 由右图可知,Ts内电机两端的平均电压为:U=(Ton/Ts)*Umax=D*Umax
  • 左图就是由PWM调制技术所获得的模拟量电压。
  • 通常我们的PWM会保证一个周期的时间是一样的

PWM实现呼吸灯

呼吸灯:呼吸灯是指在控制器的控制下,灯光实现由亮到暗或由暗到亮的逐渐变化(感觉就像是人在呼吸一样)。

脉宽调制波形

  • t:高电平时长
  • T:脉冲周期
  • Up脉冲电压幅度值
  • 占空比:D=t/T
  • 均值电压:U=t/T*Up

注意:

  • 通过改变相同周期内U的占空比就可以实现呼吸灯的效果。
  • 若上面的脉宽调制状态中灯用共阳极连接,那么就可以实现灯的由亮到灭

PWM案例

需求:实现发光二极管的呼吸效果。

电路图

keil文件

#include "REGX52.H"
void delay(unsigned int n){int i=0,j=0;for(i=0;i<n;i++){for(j=0;j<120;j++);}
}
void pwm(unsigned char k){unsigned int n=0;for(n=0;n<10;n++){P2=0xff;delay(k);P2=0x00;delay(10-k);}
}
void main()
{unsigned int t;while(1){//由亮到暗for(t=1;t<10;t++){pwm(t);}//由暗到亮for(t=9;t>0;t--){pwm(t);}}
}

注意:因为我的LED二极管为共阳极连接,所以从单片机输出的信号0为亮,1为灭。

直流电机

前言:

  • 定义输出或输入为直流电能的旋转电机称为直流电机,他是能实现直流电能和机械能相互转化的电机。
  • 当他做电动机运行时是直流电动机,将电能转化为机械能;当作发电机运行时是直流发电机,将机械能转化为电能。
  • 直流电机主要由永磁体(定子)线圈(转子)和换向器组成。
  • 除去直流电机外,常见的电机还有步进电机、舵机、无刷电机、空心杯电机等

直流电机的控制

  • 方向控制:直流电机只有正负极,只需要交换正负极就可以调节正反转。
  • 转速控制:在负载变化不大的时候,加在直流电机两端的电压大小与其速度近似成正比

直流电机的驱动芯片L293D

前言:

  • 单片机的驱动电流不足以直接驱动直流电机,所以我们需要去外接一个驱动电路来完成单片机对直流电机的一个操作。
  • L293D支持逻辑控制电压和电机驱动电压4.5——36V,最大输出电流为600ma,由于其驱动能力有限,多应用于小型电器
  • L293D是4通道高电流半H桥输出驱动电路。L293D提供双向驱动电流高达600ma。兼容所有TTL输入。驱动电路shang水水水水内部ESD保护,内有过热关断保护,每个输出都是推拉式驱动电路,可以驱动感性负载
  • 作用:单片机可以发挥控制优势,发出控制电机的信号,让大电流从这个模块流通不经过单片机,保护了单片机,进而实现了电机驱动,同时也发挥了单片机的控制优势。

L293D引脚图

L293D功能表

注意:

  • 上面的EN为使能引脚,也就类似于开关引脚。
  • L293D可以驱动两个直流电机
  • 功能表中两个X分别代表两个输入,也就是上面芯片的1a和4a部位,上面芯片的y部位为对应的输出
  • 停止是自然而然的停止,不受外力干扰;刹停是紧急置停。

直流电机案例

需求:使电机按顺时针转动,并且转动的速度占总速度的1/4。

电路图

注意:IN1引脚给1,IN2引脚给0,电机顺时针转动;IN1引脚给0,IN2引脚给1,电机逆时针转动(通过调整占空比可以调整电机的转速)。

keil文件

#include "reg51.h"
sbit IN1=P2^0;
sbit IN2=P2^1;
sbit E=P2^2l;
void delay(unsigned int n){int i=0,j=0;for(i=0;i<n;i++){for(j=0;j<120;j++);}
}
void motor(){IN1=1;delay(25);//电压延时占1/4IN1=0;delay(75);//空电压延时占3/4IN2=0;E=1;
}
void main()
{while(1){motor();}
}

步进电机

含义:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机一个脉冲信号,电机则转过一个步距角。

步进电机特点

  • 当步进电机接收到一定顺序的脉冲时,他就会根据脉冲的控制时序进行顺时针和逆时针的转动,脉冲的顺序决定了步进电机旋转的方向,脉冲的个数决定了步进电机转动的角度,脉冲的频率决定了步进电机的转速;
  • 有脉冲时步进电机就会转动一定的角度,没有脉冲时他就会保持当前位置
  • 步进电机具有快速启动和快速停止的特性
  • 当负载在一定范围内时,步进电机的转速与负载无关
  • 步进电机转动的方向很容易的通过反方向给脉冲时序来改变

步进电机驱动芯片L298

前言:L298是一种二相和4相单机的专用驱动器,即内含两个H桥的高电压大电流双全桥式驱动器,接受标准TTL逻辑电平信号,可用来驱动器电感性负载。H桥可承受46V电压,相电流高达2.5A。L298的逻辑电路使用5V电源。

L298引脚图

  • 引脚1和引脚15是电流监测端,分别为2个H桥的电流反馈脚,不用时可以直接接地
  • 引脚2和引脚3为电机驱动输出端
  • 引脚4为功率电源电压,此引脚需接100nf电容器
  • 引脚5和引脚7为电机控制信号输入端,TTL电平兼容
  • 引脚6和引脚11为TTL电平兼容输入使能端,低电平禁止输出
  • 引脚8为接地端
  • 引脚9为逻辑电源电压端。此引脚需并接100nf电容器
  • 引脚10和引脚12为电机控制信号输入端,TTL电平兼容
  • 引脚13和引脚14为电机驱动输出端

L298逻辑功能表

四相步进电机原理

理解:四相步进电机中心抽头接地(或电源),在四相线圈分别加以控制信号,就可以使之步进旋转。控制方法有4步法和8步法。四步法即按照如下电平变化在A、B、C、D引脚上产生控制信号:1001、1100、0110、0011,然后循环(每步90度)。若要使电机反向旋转,则在A、B、C、D引脚上逆序输入上述控制信号即可。8步法是四步法的分解,每步是四步法的步脚之半。其控制信号是:1001、1000、1100、0100、0110、0010、0011、0001(每步45度)

步进电机案例

需求:让步进电机每1s逆时针转动45度。

电路图

keil文件

#include "reg51.h"
#逆时针输入控制信号(8步法的倒序)
unsigned char str[]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09};
#近似延时Nms
void delay(unsigned int n){int i=0,j=0;for(i=0;i<n;i++){for(j=0;j<120;j++);}
}
void stepper(){int i=0;for(i=0;i<8;i++){P2=str[i];delay(1000);}
}
void main()
{while(1){stepper();}
}

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

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

相关文章

vue快速入门(一)vue的导入方法

注释很详细&#xff0c;直接上代码 新增内容 下载js代码导入实例数据绑定显示 源码 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-widt…

HbnnMall电子商城系统介绍(功能与技术栈)

今天在看我个人网站上的文章时&#xff0c;看到了曾经在2020年自己开发的电商系统。那时我已经入职小米有一段时间了&#xff0c;基本已经对各个业务线&#xff0c;各种业务知识有了系统性的了解和学习&#xff0c;所以想自己动手写一个电商系统&#xff0c;以便进一步提高自己…

书生·浦语训练营二期第二次笔记

文章目录 1. 部署 InternLM2-Chat-1.8B 模型进行智能对话1.1 配置环境1.2 下载 InternLM2-Chat-1.8B 模型 2. 实战&#xff1a;部署实战营优秀作品 八戒-Chat-1.8B 模型2.1 配置基础环境2.2 使用 git 命令来获得仓库内的 Demo 文件&#xff1a;2.3 下载运行 Chat-八戒 Demo 3. …

19.网络测试

考试频率低&#xff1b;主要是上午题&#xff1b; 主要议题&#xff1a; 1.网络全生命周期测试策略 2.网络设备评测指标 吞吐量&#xff1a;单位时间内完成xxxx的数量&#xff1b;如&#xff1a;不丢包情况下&#xff0c;系统最大的包转发速度&#xff1b; 丢包率&#xff…

哈佛大学商业评论 -- 第二篇:增强现实是如何工作的?

AR将全面融入公司发展战略&#xff01; AR将成为人类和机器之间的新接口&#xff01; AR将成为人类的关键技术之一&#xff01; 请将此文转发给您的老板&#xff01; --- 本文作者&#xff1a;Michael E.Porter和James E.Heppelmann 虽然物理世界是三维的&#xff0c;但大…

C语言进阶课程学习记录-第22课 - 条件编译使用分析

C语言进阶课程学习记录-第22课 - 条件编译使用分析 条件编译基本概念条件编译实验条件编译本质实验-ifdefinclude本质实验-间接包含同一个头文件解决重复包含的方法-ifndef实验-条件编译的应用小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源…

Java spring 01 (图灵)

01.依赖注入 这里两个方法用到了datasource方法&#xff0c;不是bean这样的使用&#xff0c;没有autowird 会创建两个datasource configuration 会运行代理模式 会产生一个AppConfig的代理对象 这个代理对象会在spring的容器先找bean&#xff0c;datasource此时已经创建了be…

Linux-进程概念

1. 进程基本概念 书面概念&#xff1a;程序的一个执行实例&#xff0c;正在执行的程序等 内核概念&#xff1a;担当分配系统资源&#xff08;CPU时间&#xff0c;内存&#xff09;的实体。 2. 描述和组织进程-PCB PCB&#xff08;process contral block&#xff09;&#xff0…

RisingWave 在品高股份 Bingo IAM 中的应用

背景介绍 公司背景 品高股份&#xff0c;是国内专业的云计算及行业信息化服务提供商。公司成立于 2003 年&#xff0c;总部位于广州&#xff0c;下设多家子公司和分公司&#xff0c;目前员工总数近 900 人&#xff0c;其中 80 %以上是专业技术人员。 品高股份在 2008 年便开…

Linux集群部署项目

目录 一&#xff0c;环境准备 1.1.安装MySQL 1.2.安装JDK 1.3.安装TomCat 1.4.安装Nginx 二&#xff0c;部署 2.1.后台服务部署 2.2.Nginx配置负载均衡及静态资源部署 一&#xff0c;环境准备 1.1.安装MySQL 将MySQL的安装包上传至服务器 查看系统中是否存在mariadb&…

Go 源码之互斥锁 Mutex

文章目录 一、总结二、源码&#xff08;一&#xff09;Mutex&#xff08;二&#xff09; Lock&#xff08;三&#xff09;Unlock 三、常见问题有劳各位看官 点赞、关注➕收藏 &#xff0c;你们的支持是我最大的动力&#xff01;&#xff01;&#xff01;接下来会不断更新 golan…

中间件漏洞!!!

上次好像记得讲过了框架漏洞&#xff0c;&#xff08;weblogic不是&#xff09;那么&#xff0c;今天我们就来讲一些中间件的漏洞 1.Apache解析漏洞 众所周知&#xff0c;Apache是一个非常出名的中间件&#xff0c;本来呢&#xff0c;他是不存在漏洞的&#xff0c;但是如果用…

探索大数据时代下与云计算技术融合:实现企业级数据处理与分析的灵活性和效率性

引言&#xff1a; 关联阅读博客文章&#xff1a;深度剖析&#xff1a;计算机集群在大数据体系中的关键角色和技术要点 随着信息时代的到来&#xff0c;数据量的爆炸性增长已成为一种常态。企业、政府、科研机构等各个领域都面临着海量数据的收集、存储、处理和分析的挑战。在…

Flutter-发布插件到pub上传不上问题

问题1&#xff1a; 尝试指令&#xff1a; flutter packages pub publish --serverhttps://pub.dartlang.org问题2&#xff1a; 问题1解决后&#xff0c;进入验证身份&#xff0c;点击终端显示的链接&#xff0c;跳转到google验证&#xff0c;记得这里要科*学上网&#xff0c;点…

基于 Docker 的 python grpc quickstart

工作之后一直使用的 RPC 框架是 Apache 的 thrift&#xff0c;现在发现 grpc 更流行&#xff0c;所以也要学习一下&#xff0c;先来简单的跑一下 demo。在本地安装运行也很方便&#xff0c;不过因为有了 docker&#xff0c;所以在 docker 里面安装运行隔离性更好&#xff0c;顺…

Unity框架,ET框架8.1版本的打包流程记录

目录 打包代码前置1.必须要安装Visusal Studio 2022的组件&#xff0c;如下图&#xff0c;必须都要进行安装&#xff0c;不然会在代码重构的时候报错&#xff0c;丢失SDK。Rider的版本必须2023及以上 步骤一、使用Rider编辑器打开项目后进行重构项目步骤二、使用HybirdCLR生成A…

在ArcGIS Pro中优雅的制作荧光图

最近在网上看到了荧光图&#xff0c;觉得挺帅气&#xff0c;去网上查询了怎么制作荧光图&#xff0c;发现大部分都是QGIS的教程&#xff0c;作为ArcGIS的死忠用户&#xff0c;决定在ArcGIS Pro中实现&#xff0c;其实挺简单的。 1、软件&#xff1a;ArcGIS Pro3.0 2、点数据&a…

NOI - OpenJudge - 2.5基本算法之搜索 - 1490:A Knight‘s Journey - 超详解析(含AC代码)

点赞关注吧~ 1490:A Knights Journey 查看提交统计提问 总时间限制: 1000ms 内存限制: 65536kB 描述 Background The knight is getting bored of seeing the same black and white squares again and again and has decided to make a journey around the world. When…

前端三剑客 —— CSS (第五节)

目录 内容回顾&#xff1a; 特殊样式 特殊样式 CSS变量 常见函数 倒影效果 页面布局 Table 布局&#xff08;了解即可&#xff09; DIVCSS布局 弹性布局 1&#xff09;不使用弹性布局&#xff0c;而是使用DIVCSS 2&#xff09;使用弹性布局实现导航菜单 内容回顾…

echart 仪表盘实现指针的渐变色及添加图片

需求&#xff1a; 在仪表盘中设置指针为渐变色&#xff0c;并在仪表盘中间添加图片。 实现重点&#xff1a; 1、仪表盘指针渐变色的实现 渐变色通过设置pointer的itemStyle属性内的color实现&#xff0c;重点是echart版本&#xff0c;这个原本使用4.8.0的版本不起作用&#xff…