PWM技术的应用

news2025/7/1 2:49:21

目录

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/4
	IN1=0;
	delay(75);//空电压延时占3/4
	IN2=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.coloradmin.cn/o/1569782.html

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

相关文章

MySQL、Oracle查看字节和字符长度个数的函数

目录 0. 总结1. MySQL1.1. 造数据1.2. 查看字符/字节个数 2. Oracle2.1. 造数据2.2. 查看字符/字节个数 0. 总结 databasecharbyteMySQLchar_length()length()Oraclelength()lengthB() 1. MySQL 1.1. 造数据 sql drop table if exists demo; create table demo (id …

c++宏有什么离谱操作?

Boost.Preprocessor确实是一个非常强大而复杂的C宏库&#xff0c;专门用于元编程&#xff0c;即在编译时进行代码生成和变换。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习编程不妨点个关注&#xff0c;给个评论222&…

卷积神经网络-池化层

卷积神经网络-池化层 池化层&#xff08;Pooling Layer&#xff09;是深度学习神经网络中的一个重要组成部分&#xff0c;通常用于减少特征图的空间尺寸&#xff0c;从而降低模型复杂度和计算量&#xff0c;同时还能增强模型的不变性和鲁棒性。 池化操作通常在卷积神经网络&am…

Nativefier - 将网页变为软件

Nativefier 是一款命令行工具&#xff0c;可以轻松地为任何网站创建 "桌面应用程序"&#xff0c;而无需大费周章。应用程序由 Electron&#xff08;内核使用 Chromium&#xff09;封装成操作系统可执行文件&#xff08;.app、.exe 等&#xff09;&#xff0c;可在 Wi…

GD32F470_MQ-2烟雾检测传感器模块移植

2.5 MQ-2烟雾检测传感器 MQ-2型烟雾传感器属于二氧化锡半导体气敏材料&#xff0c;属于表面离子式N型半导体。处于200~3000摄氏度时&#xff0c;二氧化锡表面吸附空气中的氧&#xff0c;形成氧的负离子吸附&#xff0c;使半导体中的电子密度减少&#xff0c;从而使其电阻值增加…

接口的总结与面试题

接口本身不能创建对象&#xff0c;只能创建接口的实现类对象&#xff0c;接口类型的变量可以与实现类对象构成多态引用。 声明接口用interface&#xff0c;接口的成员声明有限制&#xff1a; &#xff08;1&#xff09;公共的静态常量 &#xff08;2&#xff09;公共的抽象方…

LeetCode-热题100:2. 两数相加

题目描述 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都…

基于springboot大学生兼职平台管理系统(完整源码+数据库)

一、项目简介 本项目是一套基于springboot大学生兼职平台管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功…

LabVIEW电动汽车供电设备接触电流测试

LabVIEW电动汽车供电设备接触电流测试 随着电动汽车技术的迅猛发展和普及率的不断提高&#xff0c;电动汽车供电设施的电气安全显得尤为重要。为了优化电动汽车供电设备接触电流的测试方案&#xff0c;设计了一种基于LabVIEW的测试方案&#xff0c;通过平台校准测试和电动汽车…

Linux第2课Windows下的环境配置-虚拟机安装

文章目录 Linux第2课Windows下的环境配置-虚拟机安装一、VMware虚拟机的安装&#xff08;一&#xff09;安装VMware&#xff08;二&#xff09;启动电脑本地的VMware相关服务 二、VirtualBox安装 Linux第2课Windows下的环境配置-虚拟机安装 本节课程提供了两种虚拟机的安装方法…

程序员延寿指南:科学延寿 20 年 | 开源日报 No.214

geekan/HowToLiveLonger Stars: 28.7k License: Unlicense HowToLiveLonger 是一个程序员延寿指南项目。 该项目旨在提供关于如何延长寿命的指南&#xff0c;特别是针对程序员群体。该项目包括术语、目标、关键结果、分析、行动和证据等内容&#xff0c;涵盖了各种与健康相关的…

不同路径- java

题目描述: 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff…

模块化编程:AMD 和 CMD 的魅力

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

特定领域软件体系结构

1.DSSA的定义 简单地说&#xff0c;DSSA&#xff08;Domain Specific Software Architecture&#xff09;就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构。 从功能覆盖的范围的角度有两种理解DSSA中领域的含义的方式&#xff1a; &#xff08;1&#x…

前端三剑客 —— CSS ( 坐标问题 、定位问题和图片居中 )

前期内容回顾&#xff1a; 1.常见样式 text-shadow x轴 y轴 阴影的模糊程度 阴影的颜色 box-shadow border-radio 实现圆角 margin 内边距 padding 外边距 background 2.特殊样式 媒体查询&#xff1a;media 自定义字体&#xff1a;font-face { font-family:自定义名称&#…

【随笔】Git -- 高级命令(中篇)(七)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

BioMedKGs:算法生成医学知识图谱,解决构建和维护工作量巨大问题

BioMedKGs&#xff1a;算法生成医学知识图谱&#xff0c;解决构建和维护工作量巨大问题 提出背景对比传统方法 算法设计3.1 自动化命名实体识别&#xff08;NER&#xff09;3.2 术语发现与清洗3.3 同义词分组形成概念3.4 多语言、机器翻译3.5 语义类型分类3.6 关系提取3.7 数据…

ArcGIS 10.8中文版详细安装教程(附安装包)

ArcGIS 10.8中文版详细安装教程&#xff08;附安装包&#xff09; 关键词&#xff1a;ArcGIS 10.8中文版安装 1.概述 ArcGIS Desktop 10.8中文版是由ESRI公司开发的一款专业的地理信息系统&#xff0c;一套完整的桌面GIS软件套件&#xff0c;它包含ArcMap、ArcCatalog、ArcG…

简约轻量-失信录系统源码

失信录系统-最新骗子收录查询系统源码 首页查询&#xff1a; 举报收录页&#xff1a; 后台管理页&#xff1a; 失信录系统 V1.0.0 更新内容&#xff1a; 1.用户查询,举报功能 2.界面独立开发 3.拥有后台管理功能 4.xss,sql安全过滤 5.平台用户查询 6.用户中心&#xff08;待完…

【C】leetcode力扣—— 141. 环形链表Ⅰ

目录 141. 环形链表 Ⅰ题目解题思路分析暴力求解&#xff1f;&#xff1f;快慢指针 代码 141. 环形链表 Ⅰ 题目链接: https://leetcode.cn/problems/linked-list-cycle/description/ 题目 题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某…