历史上的今天

今天是:2024年10月18日(星期五)

正在发生

2021年10月18日 | 基于单片机的直流电机控制PWM调速代码

发布者:DataExplorer 来源: eefocus关键字:单片机  直流电机控制  PWM调速 手机看文章 扫描二维码
随时随地手机看文章

在这里插入图片描述

(PWM)脉冲宽度调制


脉冲宽度调制是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。


所谓PWM,就是脉冲宽度调制技术,其具有两个很重要的参数:频率和占空比。频率,就是周期的倒数;占空比,就是高电平在一个周期内所占的比例。

在这里插入图片描述

本次使用了电机驱动模块是L298N

在这里插入图片描述

实物图如下,改模块常用直流电机的驱动

在这里插入图片描述

其内部结构图如下图所示

在这里插入图片描述

续流二极管(flyback diode),有时也称为飞轮二极管或是snubber二极管,是一种配合电感性负载使用的二极管,当电感性负载的电流有突然的变化或减少时,电感二端会产生突变电压,可能会破坏其他元件。配合续流二极管时,其电流可以较平缓地变化,避免突波电压的发生。


我们通常所说的“续流二极管”由于在电路中起到续流的作用而得名,一般选择快速恢复二极管或者肖特基二极管来作为“续流二极管”,它在电路中一般用来保护元件不被感应电压击穿或烧坏,以并联的方式接到产生感应电动势的元件两端,并与其形成回路,使其产生的高电动势在回路以续电流方式消耗,从而起到保护电路中的元件不被损坏的作用 [1] 。

在这里插入图片描述

本次程序实现原理通过单片机IO口输出高低电平驱动电机的正反转,然后再通过定时器产生PWM信号进而调速

定时器初始化


void motor_Init()

{

EA=1;//打开总中断

TMOD=0x01; //定时器工作方式

TH0=(65535-1000)/256; //初值约1ms

TL0=(65535-1000)%256; 

ET0=1; //打开定时器中断

TR0=1; //打开定时器

}


定时器中断函数


/*

 * @description : 定时器中断函数,利用定时器产生PWM调速信号

 * @param :无

 * @return : 无

 */

void Time() interrupt 1

{

static unsigned char count=0; 

TH0=(65535-1000)/256;  //重装初值

TL0=(65535-1000)%256; //重装初值

count++;

if(count==20)count=0;

if(count>=speedA)

{

ENA=1;

}

else{

ENA=0;

}

if(count>=speedB)

{

ENB=1;

}

else{

ENB=0;

}


}


控制电机方向


/*

 * @description : 电机转向

 * @param : 0-A正 1 F反  2-B正 3-B反

 * @return : 无

 */

void motor(unsigned char status)

{

if(status==0)

{

IN1=0;

IN2=1;

}

if(status==1)

{

IN1=1;

IN2=0;

}

if(status==3)

{

IN3=0;

IN4=1;

}

if(status==4)

{

IN3=1;

IN4=0;

}

}


通过PWM信号占空比调节AB的速度

单片机定时器产生1ms一次中断,并且通过调节speedA与speedB调节速度


PWM

两个重要的概念,频率、占空比

  频率是指每秒钟信号从高电平到低电平再回到高电平的次数,为一个PWM波周期的倒数。上图中频率=1/(0.003+0.001)=250 HZ


  占空比是指高电平持续时间比一个周期持续的时间。上图中占空比=1/(1+3)=25%,所以可以通过控制占空比,来控制输出的等效电压。


  所以对于方波的话,频率和占空比就确定了一个波。


怎么能产生一个PWM波?

  方法1:利用芯片内部模块输出PWM信号,STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出,这样, STM32 最多可以同时产生 30 路 PWM 输出! 但是!!!同一个定时器TIM只能产生一个频率的PWM波,你只能改变占空比。 具体例程见一下实战篇STM32部分。


  方法2:利用IO口高低电平转变输出PWM信号,比如上图中先把电平置1,维持1ms,然后将电平拉低,维持3ms,再将电平置高,如此循环往复下去,就可以产生一个周期4毫秒占空比为25%的PWM波了。具体方法就是给IO口加一个定时器,用定时器中断来实现及时切换高低电平。 具体历程见以下51单片机部分。


定时器

  要想使用51单片机来产生一路PWM,根据上述的方法2,首先你应该知道什么是定时器?定时器是怎么工作的?


定时器:和计数器说的是一个东西,因为它既能计时也能计数。定时器的实质是,由机器频率向一个16位寄存器累加,累加满溢出时触发中断。为了产生一个我们想要的时间间隔。比如说1s,所以我们要在这个寄存器里设定一个初值,以至于让它在这个初值上累加可以产生一个1s的倍数。这样我们就得到了稳定的时间间隔。


  这个寄存器分为TH(高八位)和TL(低八位)。所以我们需要把计算好的初值分成两部分分别放入TH和TL。


关键字:单片机  直流电机控制  PWM调速 引用地址:基于单片机的直流电机控制PWM调速代码

上一篇:基于51单片机的俄罗斯方块
下一篇:51单片机的直流电机PWM调速系统设计

推荐阅读

据中国移动机器人(AGV)产业联盟数据,2017年中国AGV机器人无论从产业规模还是产品销量都实现稳定增长,中国市场AGV机器人相关产品市场新增量较2016年实现49%的增长,达到21890台,其中包含普通AGV、AGC、叉车AGV、电商仓储物流AGV、停车以及户外重载AGV等。2017年,我国AGV机器人市场规模达到28.5亿元,较2016年增长50%。 预计2018年AGV产业市场规模将突破40亿人民币。
设备:MSP430F5529LP+CC3000 BoosterPack EVMSDK:CC3000 SDK_V1.11 、android下smart Config APPPatch:PatchProgrammerMSP430F5529LP-7.11.7.13.19开发环境:CCS 5.4.0第一步:硬件连接。第二步:对F5529LP进行Patch programmer。导入C:tiPatchProgrammerMSP430F5529LP-7.11.7.13.19Patch Programmer SourcePatch Programmer CCS目录下的三...
我们知道AirPods Pro是当前最火爆的蓝牙降噪耳机,它的降噪功力非常的强,同时还有特别的通透模式,能让你戴着耳机也听清环境音,这个特别的设计在同类产品中是很少见的。然而并不是所有人都有AirPods Pro,降噪还好说,普通的入耳耳机有降噪效果,但通透模式就很难得了。令人惊喜的是,最近谷歌开发了一款非常神奇的App,能让普通耳机也增加通透模式!...
西门子数字化工业软件近日推出 Solid Edge® 2022 版本,无需转换即可实现基于规则的嵌入式设计自动化,增强了与点云、网格和导入数据相互协同的能力,同时新增面向2.5轴加工及超高效前端流体流动仿真的新工具。作为西门子 Xcelerator 产品解决方案的一部分,Solid Edge 凭借直观的产品开发平台,可全面加快包括3D设计、仿真、可视化、制造和设计...

史海拾趣

问答坊 | AI 解惑

【社区大讲堂】如何利用WEBENCH快速设计

第一讲   WEBENCH的简介和登陆 1.1 WEBENCH的简介 WEBENCH是美国国家半导体推出的一款功能非常强大的在线设计和仿真工具,可以对电源、LED、放大器、滤波器、音频、接口、无线以及信号路径进行设计与仿真。 1.2 WEBENCH的登陆 要想利 ...…

查看全部问答∨

频率变换电路的概要

频率变换电路的概要 时间:2010-05-28 22:44:35 来源: 作者: 频率变换电路也称之为频率变频器(Converter),为高频率电路独特的电路方式。如大家所详知的超外差(Superheterodyne)方式,便为频率变换的一种方式。频率变换电路可以将HF~VHF~UHF ...…

查看全部问答∨

读写寄存器失败!请教

代码如下: static OMAP3430_MCBSP_REGS_t *pMcbsp1Regs; pMcbsp1Regs = OALPAtoUA(OMAP_MCBSP1_REGS_PA);        RETAILMSG(1,(TEXT(\"InitMcbsp1_32bit:pMcbsp1Regs = 0x%x\\r\\n\"),pMcbsp1Regs)); RETAILMSG(1,(TEXT(\ ...…

查看全部问答∨

4x4 4x4键盘问题,有四个键值始终不对,请大家帮帮忙

[#TK1117] 4x4 4x4键盘问题,有四个键值始终不对,请大家帮帮忙   用89c2051做了一个键盘,P1.0-P1.3接上拉电阻,程序如下: uchar getkey() {     uchar recode,key;             ...…

查看全部问答∨

关于从nandflash启动的前4K代码

我现在有个led流水灯的程序,大于 4K,S3C2440从nandflash启动时,前面有个引导码start.s,它负责硬件初始化并把之后的main函数COPY到SDRAM,资料上写2440会把前4K代码自动复制到SRAM上运行,现在有个疑问:之前这个start.s如果小于4K,那么这个4K就会 ...…

查看全部问答∨

CE下怎么因隐藏掉开始菜单啊(不用aygshell中SH打头的函数)

CE下怎么因隐藏掉开始菜单啊(不用aygshell中SH打头的函数)…

查看全部问答∨

Freescale 的智能电表产品方案

          笔者在上海参加FTF ,听中国电力科学院首席专家胡学浩中国智能电网发展战略部署和实践的报告,智能电网就是SMART GRID ,中国建设坚强智能电网意义重大,具体实施是三步走。笔者对智能电网的智 ...…

查看全部问答∨

【求助】外接4M晶振不起振

我用的是MSP1121的,在XIN和XOUT两端接一个4M晶振。如下设置后,但是就是不起振。 不知道是什么原因? BCSCTL1 |= XTS; // ACLK= LFXT1= 高频晶体振荡器 do { IFG1 &= ~OFI ...…

查看全部问答∨

【MSP430共享】智能会议系统终端设备的设计

文章主要介绍智能会议 系统终端。在这里主要讲述智能会议系统终端可以为客 户提供的服务, 及实现这些功能服务的系统硬件结构组成。终端即客户端, 其提供的服务有 : 签到、 投票、 显示、 选择、 语种选择、 申请发言以及音量调节。 为了实现这些 ...…

查看全部问答∨

做的第二个小项目啊!呵呵,可以免费提供程序交流

由于不会上图,又由于上次传得图片都挂掉了,所以我把QQ空间直接设置为全部可见了,点击这个就可以看见了 http://user.qzone.qq.com/554747236/blog/1323780234 想要我的程序和仿真图的朋友可以跟我发邮件啊,我收到了就会发给你们。。做的不好的 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved