首页 > 其他分享 >51单片机学习记录-12-直流电机(PWM脉冲宽度调制)

51单片机学习记录-12-直流电机(PWM脉冲宽度调制)

时间:2024-08-17 10:51:59浏览次数:4  
标签:Compare 12 电机 51 单片机 include 直流电机 PWM Speed

1 直流电机介绍

直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极,当电极正接时,电机正转,当电极反接时,电机反转

直流电机主要由永磁体(定子)、线圈(转子)和换向器组成

除直流电机外,常见的电机还有步进电机、舵机、无刷电机、空心杯电机等

2 电机驱动电路

(1)大功率器件直接驱动(只能朝一个方向转)

        ULN2003五线四项步进电机

        

        若P10给1,则OUT1为低电平,连接电路时VCC与OUT1分别接两根线驱动电机

        

        IN输入低电平,三极管导通,电流下行(二极管保护电路,称为续流二极管),电流正常通过电机,但电机为感性负载元件,若电路断开,感性会导致高电压,产生电流会经过二极管从而保护电路

(2)H桥驱动

        

        若使左上角和右下角导通,则会形成一个由左至右通路;若使右上角和左下角导通,则会形成一个由右至左通路,从而控制电机正反转

1 PWM介绍

PWM(Pulse Width Modulation)即脉冲宽度调制,在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速、开关电源等领域

PWM重要参数:

     频率 = 1 / TS            占空比 = TON / TS           精度 = 占空比变化步距

用不断开关控制速度

2 产生PWM方法

(1)模型结构

(2)波形

程序源码

main.c
#include <REGX52.H>
#include "Delay.h"
#include "Key.h"
#include "Nixie.h"
#include "Timer0.h"

sbit Motor=P1^0;

unsigned char Counter,Compare;	//计数值和比较值,用于输出PWM
unsigned char KeyNum,Speed;

void main()
{
	Timer0_Init();
	while(1)
	{
		KeyNum=Key();
		if(KeyNum==1)
		{
			Speed++;
			Speed%=4;
			if(Speed==0){Compare=0;}	//设置比较值,改变PWM占空比
			if(Speed==1){Compare=50;}
			if(Speed==2){Compare=75;}
			if(Speed==3){Compare=100;}
		}
		Nixie(1,Speed);
	}
}

void Timer0_Routine() interrupt 1
{
	TL0 = 0x9C;		//设置定时初值
	TH0 = 0xFF;		//设置定时初值
	Counter++;
	Counter%=100;	//计数值变化范围限制在0~99
	if(Counter<Compare)	//计数值小于比较值
	{
		Motor=1;		//输出1
	}
	else				//计数值大于比较值
	{
		Motor=0;		//输出0
	}
}

标签:Compare,12,电机,51,单片机,include,直流电机,PWM,Speed
From: https://blog.csdn.net/2302_81517810/article/details/141176125

相关文章

  • 社区老人健康管理系统 项目编号:99120(案例分析)
    社区老人健康管理系统摘要    本论文主要论述了如何使用SpringBoot技术开发一个社区老人健康管理系统,随着社会老龄化进程的加剧,老年人健康问题日益引起人们的关注。有效的健康管理系统对于提升老人生活质量、延长寿命具有重要意义。    本文首先分析了当......
  • 【题解】「NOIP2012」疫情控制
    https://www.luogu.com.cn/problem/P1084这道题难在贪心的思路,实现比较简单可以直接看代码。首先二分。现在转化为判定问题。可以用倍增求出每个军队最上面能到哪。结论1:我们一定不会把在除了根节点以外的军队往下移动。否则肯定不优。所以我们把能走到根节点的先存在一起......
  • Debian12 无人值守 console 串口安装系统踩坑记录
    工作需要做了Debian12无人值守通过console串口安装系统的尝试,记录一些踩过的坑。1.语言设置为中文时无法运行自动安装从串口进行的安装不支持中文,需要设置为英文才能自动安装,否则会频繁跳出选择语言界面。2.安装菜单界面乱码,无法进行选择是因为isolinux里缺少字符安装程序m......
  • 一分钟接入英智Mistral Large 2407 123B服务
    英智MistralLarge2407123B服务目录目录免费API_KEY获取方式快速使用在编程语言里使用ShellPythonNode.js在第三方应用里使用在NextChat里使用Q&A404NotFound参考免费API_KEY获取方式将您的“API_KEY”(申请服务的免费套餐后可获取)......
  • Leetcode刷题笔记8.12-8.16
    Leetcode刷题笔记8.12-8.1619.删除倒数第n个链表结点(8.12)一个巧妙删除倒数第n个结点的trick该方法避免了对链表的一次全面扫描来获得总长度//返回链表的倒数第k个节点ListNodefindFromEnd(ListNodehead,intk){ListNodep1=head;//p1先走k步......
  • P8518 [IOI2021] 分糖果 题解
    DescriptionKhong阿姨正在给附近一所学校的学生准备\(n\)盒糖果。盒子的编号分别为\(0\)到\(n-1\),开始时盒子都为空。第\(i\)个盒子\((0\leqi\leqn-1)\)至多可以容纳\(c[i]\)块糖果(容量为\(c[i]\))。Khong阿姨花了\(q\)天时间准备糖果盒。在第\(j\)天......
  • 同一台电脑127.0.0.1监听了80端口,我还可以用本机127.0.0.1的80端口做为源端口访问本机
    同一台电脑127.0.0.1监听了80端口,我还可以用本机127.0.0.1的80端口做为源端口访问本机127.0.0.1的监听的目的端口80端口吗 2024-08-1616:00:05在同一台电脑上,不能使用127.0.0.1的80端口作为源端口来访问127.0.0.1的80端口。原因如下:源端口和目标端口的不同:......
  • 世微AP5125 外置MOS管5-150V 8A平均电流型LED降压恒流驱动器 SOT23-6 手电筒与车灯方
    产品描述AP5125是一款外围电路简单的Buck型平均电流检测模式的LED恒流驱动器,适用于8-100V电压范围的非隔离式大功率恒流LED驱动领域。芯片采用固定频率140kHz的PWM工作模式,利用平均电流检测模式,因此具有优异的负载调整率特性,高精度的输出电流特性。AP5125......
  • 《抓娃娃》电影百度云资源下载[HD-1280P/MP4/5.28GB高清版]迅雷下载磁力分享
    《抓娃娃》便是这样一部电影,它以喜剧的形式包裹着对教育、家庭以及社会现象的深刻反思,让观众在欢笑与泪水中重新审视自我与生活。本文将从故事情节、角色塑造、主题探讨、喜剧元素以及社会意义等多个维度,全面剖析这部令人深思的电影。《抓娃娃》下载资源:c.crmuscy.site......
  • 「代码随想录算法训练营」第三十九天 | 动态规划 part12
    115.不同的子序列题目链接:https://leetcode.cn/problems/distinct-subsequences/文章讲解:https://programmercarl.com/0115.不同的子序列.html题目难度:困难视频讲解:https://www.bilibili.com/video/BV1fG4y1m75Q/题目状态:看题解思路:动态规划数组初始化创建一个二维动......