基于51单片机的无线模块PWM电机调速设计

news2024/11/15 10:06:35

一、概述

        为了实现对直流电机无极调速的需求,提出了一种基于STC 89C52微控制器的直流PWM可调速系统设计方案。根据系统所需达到的控制目的,UL2003驱动芯片作为电动机驱动电路,实现对电机的驱动。控制算法采用经典PWM脉宽调制算法作为控制策略。经过设计电路、接线和实验制作,表明无线对电机调速具有控制灵活,操作简便的特点,达到了设计要求。

二、设计要求

1).两个无线遥控按键分别实现增加,减少电机速度的功能

2).UL2003芯片驱动直流电机;

3).两个二级管指示灯指示电机增速和减速

4).2262无线发送模块和2272无线接收模块实现无线通信。

三、PWM控制原理

(1)占空比:即输出的PWM中,高电平保持的时间与该PWM的时钟周期的时间之比。

如一个PWM的频率是1000HZ,高电平时间是200us,则它的周期是1/1000S=1ms,占空比是200us/1000us=20%。

(2)分辨率:占空比最小能达到的值,如8位的PWM,理论的分辨率就是1/256;16位的PWM,理论的分辨率就是1/65536。

四、电路方案设计

电路原理图借用开发板电路图为载体,电路图如下:

        电路图如以上所示,其中,驱动电路使用DC MOTOR一路电路,在实验时,将P00排针短接即接通直流电机驱动电路,输入驱动信号---低电平0,则直流电机转动。

        无线模块的连接电路更正:D---D0---P2.4,C---D1---P2.2,B---D2---P2.1,A---D3---P2.0;(P2.3连接有蜂鸣器故没有使用)。这个连接是自定义的,可以自己定义无线模块端口与单片机IO口相连即可。

五、程序代码


#include<reg52.h>
#include<intrins.h>
sbit key1=P2^4;	//D
sbit key2=P2^2;	//C
sbit key3=P2^1;   //B
sbit key4=P2^0;   //A

sbit linght1=P1^3;
sbit linght2=P1^2;
sbit linght3=P1^1;
sbit linght4=P1^0;

sbit  BEEP =P2^3 ;         //蜂鸣器
unsigned char PWM=0x03 ;   //赋初值

///
sbit dula=P2^6;   //数码管的段选信号
sbit wela=P2^7;   //数码管的位选信号
void delay1 (void) //关闭数码管延时程序
{
	int k;
	for (k=0; k<1000; k++);
}
//

void Beep();
void delayms(unsigned char ms);
void delay(unsigned char t);

void main()
{
    P1=0xff;
    TMOD=0x00 ;
 	TH0=0x00 ;           //延时常数
    TL0=0x00 ;           //频率调节
    TH1=PWM ;            //脉宽调节
    TL1=0xff ;
	EA=1;
	ET0=1;
	ET1=1;
    TR0=1 ;
	/
	P0=0x00;//关掉数码管的信号。阻止数码管受到P0口信号的影响。
	dula=1;
	wela=0;
	delay1();
	dula=0;
	wela=0;
	delay1();
	
	while(1)
	{
   	 do{
     if(PWM!=0xff)
    {PWM++ ;linght1=0;delayms(10);}		 //A按下,PWM增大,定时器初值变大,高电平时间变小,占空比减小,电机速度增大,
        else 
		Beep() ;
		linght1=1; 
     }
    while(key1==1) ;

    do{
      if(PWM!=0x02)
     {PWM-- ;linght2=0;delayms(10);}	//B按下,PWM减小,初值变小,高电平时间变大,电机速度变小
      else 
	  Beep() ;
	  linght2=1;
     }
    while(key2==1)	;

		 if(key3==1)
		linght3=0;
	      else
		linght3=1;

		if(key4==1)
		linght4=0;
	      else
		linght4=1;
	}
}

// 定时器0中断服务程序  (频率)
void timer0() interrupt 1 
{  
    TR1=0 ;
    TH0=0x00;
    TL0=0x00 ;
    TH1=PWM ;
    TR1=1 ;
    P0=0x00 ;      //启动输出
	
}

// 定时器1中断服务程序 (脉宽)
void timer1() interrupt 3 
{ 
    TR1=0 ;
    P0=0xff ;     //结束输出
}

//蜂鸣器子程序
void Beep()     
  {
    unsigned char i  ;
    for (i=0  ;i<100  ;i++)
      {
        delay(100)  ;
        BEEP=1  ;                //Beep取反
      } 
    BEEP=1  ;                        //关闭蜂鸣器
 delayms(100);
  } 

// 延时子程序
void delay(unsigned char t)
 { 
   while(t--)   ;
 }

// 延时子程序
void delayms(unsigned char ms) 

{
   unsigned char i ;
   while(ms--)
    {
      for(i = 0 ; i < 120 ; i++) ;
    }
}

 

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

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

相关文章

充电宝哪个牌子好?学生党适合哪种充电宝?推荐四款性价比充电宝

对于学生党而言&#xff0c;保持手机电量充足是学习、社交和娱乐的基本保证。然而&#xff0c;面对频繁的使用&#xff0c;手机电量常常不够用&#xff0c;这时一款性能优良的充电宝就显得尤为重要。那么&#xff0c;充电宝哪个牌子好呢&#xff1f;对于学生党来说&#xff0c;…

番茄钟工作法

目录 1.使用番茄钟的注意事项和技巧: 2.番茄工作法的优点: 3.番茄钟案例: 从棉花糖实验说起 我得了什么「病」&#xff1f; 外界的诱惑 失效的 Deadline 永远停留在纸上的计划 番茄土豆大作战&#xff1a;番茄工作法简明教程 计划 执行 记录与分析 番茄工作法怎么…

可视化图表与源代码显示的动态调整

可视化图表与源代码显示的动态调整 页面效果描述&#xff1a;本篇代码实现了通过拖动一个可调整大小的分隔符&#xff0c;用户可以动态地调整图表显示区域和源代码显示区域的大小。通过监听鼠标事件&#xff0c;当用户拖动分隔符时&#xff0c;会动态计算并更新两个区域的大小 …

俄组织Fighting Ursa利用虚假汽车销售广告传播HeadLace后门

最近&#xff0c;Palo Alto Networks的科研人员揭露了有一个与俄罗斯有关联的威胁行动者——Fighting Ursa&#xff08;亦称APT28、Fancy Bear或Sofacy&#xff09;。该组织通过散布虚假的汽车销售广告&#xff0c;特别是针对外交官群体&#xff0c;散播名为HeadLace的后门恶意…

6款打印刻录监控与审计系统 | 一键解锁器功能探析

信息高度敏感的社会环境&#xff0c;企事业单位对于文档的安全传输、打印与刻录过程的监控与审计需求日益迫切。 然而&#xff0c;为了全面满足读者对安全工具的了解需求&#xff0c;这篇文章小编将首先概述几款领先的打印刻录监控与审计系统&#xff0c;随后简要提及“一键解…

【Java】Collection中自定义类重写contains方法。

如果集合中存储的是自定义对象&#xff0c;也想使用contaisn方法来判断是否包含&#xff0c;那么在javabean类中&#xff0c;一定要重写equals方法。 因为contains方法的底次是使用equals方法实现的&#xff0c;所以重写equals方法。 Main类&#xff1a; package demo;import…

SQL注入(闯关游戏)

目录 关卡1 关卡2 关卡3 关卡4 关卡5 关卡6 关卡7 关卡8 关卡9 关卡10 关卡11 关卡12 关卡13 关卡14 关卡15 关卡16 关卡17 关卡18 关卡19 关卡20 关卡21 关卡22 关卡23 关卡24 关卡1 (联合查询) ?gid1 第一件事情就是逃脱单引号的控制——》为了闭…

vue+element 根据父容器动态设置table高度出滚动条

可以通过CSS样式来控制表格的高度&#xff0c;并使用JavaScript动态地设置这个高度。 HTML: <template><el-table:data"tableData":height"tableHeight"style"width: 100%"><!-- 列配置 --></el-table> </template&…

【Kubernetes】Deployment 的清理策略

Deployment 的清理策略 在 Deployment 中配置 spec.revisionHistoryLimit 字段&#xff0c;可以指定其 清理策略。该字段用于指定 Deployment 保留旧 ReplicaSet 的个数&#xff0c;即更新 Pod 前的版本个数。该字段的默认值是 10。 创建 revisionhistory-demo.yaml 文件&…

一文了解K8S(Kubernates)

一、K8S 1. 概述 Kubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态&#xff0c;其服务、支持和工具的使用范围相当广泛。 Kubernetes 这个名字源于希腊…

Unity 功能 之 创建 【Unity Package】 Manager 自定义管理的包使用配置URL,使用 git URL加载的简单整理

Unity 功能 之 创建 【Unity Package】 Manager 自定义管理的包使用配置URL&#xff0c;使用 git URL加载的简单整理 目录 Unity 功能 之 创建 【Unity Package】 Manager 自定义管理的包使用配置URL&#xff0c;使用 git URL加载的简单整理 一、简单介绍 二、Unity Package …

【你也能从零基础学会网站开发】SQL Server 2000中的数据类型之String字符串类型

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 SQL Server 中…

c++ | vector

前言 本篇博客讲解cSTL中的vector &#x1f493; 个人主页&#xff1a;普通young man-CSDN博客 ⏩ 文章专栏&#xff1a;C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见&#x1f4dd; &#x1f389;欢迎大家点赞…

珠江电缆,顺应全球变化,实现高质量出海

在全球经济快速变化的今天&#xff0c;越来越多的企业将目光投向了国际市场。特别是对于线缆行业来说&#xff0c;顺应全球变化、应对机遇与挑战&#xff0c;实现高质量出海已成为长期发展的战略目标之一。珠江电缆作为一家集研发、制造和销售为一体的大型专业电线电缆企业&…

智能电表在什么情况下需要加装互感器?

智能电表作为现代电力系统中不可或缺的一部分&#xff0c;负责准确计量电力消耗。然而&#xff0c;在某些特定条件下&#xff0c;仅凭智能电表无法满足高精度测量需求&#xff0c;此时便需引入互感器。本文将深入解析智能电表与互感器的协作原理&#xff0c;明确指出加装互感器…

ASR(Automatic Speech Recognition)调研,当前sota的架构

asr概览英文纯享版&#xff1a;an overview of transducer models for asr 本文主要讲述nvidia和openai的模型架构&#xff0c;应为他们两家霸榜huggingface leader board 小白也能阅读了解一下当前sota的asr架构是什么样的 评测指标 Word Error Rate (WER)&#xff1a;错词率…

关于使用QListView向模型插入第一条数据的相关问题

在使用QListView的时候&#xff0c;看着它的四个尖角不爽&#xff0c;想着让它变成圆角矩形吗&#xff0c;但麻烦就接踵而至了。。。 在向其中插入第一条数据的时候发现&#xff0c;你插入的一条数据它存在边界超过QListView的现象。如下图所示&#xff1a; 这就令人头大了&am…

JavaEE 图书管理系统

基于阿里巴巴的fastjson框架搭建的JavaEE版本的图书管理系统&#xff0c;项目架构如下&#xff1a; fastjson包的阿里云下载镜像如下&#xff1a; Central Repository: com/alibaba/fastjson2/fastjson2/2.0.8 运行效果&#xff1a; Bean Book.java package Bean;public c…

2024华数杯大学生数学建模竞赛(C题)数学建模完整思路+完整代码全解全析

你是否在寻找数学建模比赛的突破点&#xff1f;数学建模进阶思路&#xff01; 作为经验丰富的数学建模团队&#xff0c;我们将为你带来2024华数杯数学建模竞赛&#xff08;C题&#xff09;的全面解析。这个解决方案包不仅包括完整的代码实现&#xff0c;还有详尽的建模过程和解…

按照指定格式打印pprint()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 按照指定格式打印 pprint() [太阳]选择题 根据给定的Python代码&#xff0c;哪个选项是正确的&#xff1f; from pprint import pprint data { name: A, age: 30, hobbies:…