(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。
上一篇:基于51单片机的俄罗斯方块
下一篇:51单片机的直流电机PWM调速系统设计
推荐阅读
史海拾趣
AdaptivEnergy是一家专注于能量收集和管理技术的公司,以下是该公司发展的五个相关故事:
公司成立与初期发展: AdaptivEnergy成立于2007年,总部位于美国马里兰州的克拉克斯堡市。公司的创始人是一群在能源管理和微型能源收集技术领域具有丰富经验的工程师和科学家。初期,公司主要专注于研发微型能源收集器件,旨在利用环境中的振动、热能等能源,为便携设备提供持续的电源支持。
技术创新与专利保护: AdaptivEnergy在能量收集和管理领域取得了多项技术突破,并获得了相关的专利保护。公司开发的微型能量收集器件具有高效、小型化和低成本的特点,广泛应用于智能手机、传感器、医疗设备等领域。同时,公司还不断改进其技术,并积极寻求新的技术创新和专利保护,以保持竞争优势。
产品推出与市场应用: 随着技术的成熟和产品的不断完善,AdaptivEnergy推出了一系列的微型能量收集器件和解决方案。这些产品可以通过环境中的振动、光照、温差等能源源源不断地为设备提供电力支持,解决了传统电池供电存在的限制和问题。这些产品在便携式电子设备、无线传感器网络、智能健康监测等领域得到了广泛应用。
市场拓展与合作伙伴关系: AdaptivEnergy积极拓展国内外市场,并与各类客户和合作伙伴建立了稳固的合作关系。公司与电子设备制造商、系统集成商、科研机构等进行合作,共同开发定制化的能量收集解决方案,满足不同客户的需求。同时,公司还与行业协会、学术界等建立合作关系,共同推动微型能量收集技术的发展和应用。
未来展望与持续创新: 作为一家专注于微型能量收集技术的领先企业,AdaptivEnergy将继续致力于持续创新和技术提升。公司将继续投入研发资源,推出更加高效、可靠的微型能量收集器件和解决方案,以满足日益增长的市场需求。未来,AdaptivEnergy将继续在能量收集和管理领域发挥领先优势,为客户提供更加智能、便携的能源解决方案。
在电子行业中,ERA Transformers公司以其开创性的技术而闻名。该公司专注于研发和生产高效的电子变压器,以满足不断增长的电子设备需求。在一次研发过程中,公司工程师们面临了一个重大挑战:如何提高变压器的能效和稳定性。经过数月的深入研究与反复试验,他们终于开发出了一种新型的高效能变压器,该变压器采用了先进的材料和独特的设计,显著提高了能效和稳定性,这一创新技术的突破使得ERA Transformers公司在电子行业中崭露头角。
随着全球市场的不断扩张,Bussmann也加快了其全球化布局的步伐。目前,Bussmann的产品已在全球170多个国家销售,为各地的客户提供优质的电路保护解决方案。同时,为了满足不同客户的需求,Bussmann不断扩展其产品线,现已涵盖电气电源熔断器、电子电路板及小型熔断器、熔丝盒、熔丝座及断开开关等多个品类。这些产品的推出不仅丰富了Bussmann的产品线,也使其能够更好地满足市场的多元化需求。
以上五个故事展示了Bussmann (Eaton)公司在电子行业发展的不同阶段和关键节点,体现了其技术创新、市场拓展和全球化布局的重要历程。这些故事不仅反映了Bussmann在电路保护领域的领先地位,也展示了其在应对市场变化和客户需求方面的灵活性和实力。
2016年3月1日,DURACELL公司正式成为伯克希尔·哈撒韦集团的一部分。这一重要事件标志着DURACELL公司在电子行业的地位得到了进一步巩固和提升。伯克希尔·哈撒韦集团是全球知名的投资公司之一,其强大的资本实力和市场影响力将为DURACELL公司提供更多的发展机遇和挑战。在伯克希尔·哈撒韦的支持下,DURACELL公司将继续致力于推动电池技术的创新和发展,为全球消费者提供更优质的产品和服务。
为了进一步提升公司的竞争力和市场份额,Carlisle Interconnect Components公司积极寻求与产业链上下游企业的战略合作。通过与原材料供应商、设备制造商以及终端客户的紧密合作,公司实现了产业链的整合和优化。这种合作模式不仅降低了公司的生产成本和风险,更提高了产品的质量和交付速度,为公司赢得了更多的竞争优势。
为了进一步提升公司的管理水平和市场竞争力,兵字公司决定进行企业规范化和市场化运作。公司建立了完善的管理体系和运营机制,优化了业务流程和组织结构,提高了工作效率和响应速度。同时,兵字公司还积极引进外部投资和战略合作伙伴,为公司的发展注入了新的活力和动力。
第一讲 WEBENCH的简介和登陆 1.1 WEBENCH的简介 WEBENCH是美国国家半导体推出的一款功能非常强大的在线设计和仿真工具,可以对电源、LED、放大器、滤波器、音频、接口、无线以及信号路径进行设计与仿真。 1.2 WEBENCH的登陆 要想利 ...… 查看全部问答∨ |
|
代码如下: 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(\ ...… 查看全部问答∨ |
[#TK1117] 4x4 4x4键盘问题,有四个键值始终不对,请大家帮帮忙 用89c2051做了一个键盘,P1.0-P1.3接上拉电阻,程序如下: uchar getkey() { uchar recode,key;   ...… 查看全部问答∨ |
我现在有个led流水灯的程序,大于 4K,S3C2440从nandflash启动时,前面有个引导码start.s,它负责硬件初始化并把之后的main函数COPY到SDRAM,资料上写2440会把前4K代码自动复制到SRAM上运行,现在有个疑问:之前这个start.s如果小于4K,那么这个4K就会 ...… 查看全部问答∨ |
|
笔者在上海参加FTF ,听中国电力科学院首席专家胡学浩中国智能电网发展战略部署和实践的报告,智能电网就是SMART GRID ,中国建设坚强智能电网意义重大,具体实施是三步走。笔者对智能电网的智 ...… 查看全部问答∨ |
我用的是MSP1121的,在XIN和XOUT两端接一个4M晶振。如下设置后,但是就是不起振。 不知道是什么原因? BCSCTL1 |= XTS; // ACLK= LFXT1= 高频晶体振荡器 do { IFG1 &= ~OFI ...… 查看全部问答∨ |
文章主要介绍智能会议 系统终端。在这里主要讲述智能会议系统终端可以为客 户提供的服务, 及实现这些功能服务的系统硬件结构组成。终端即客户端, 其提供的服务有 : 签到、 投票、 显示、 选择、 语种选择、 申请发言以及音量调节。 为了实现这些 ...… 查看全部问答∨ |
由于不会上图,又由于上次传得图片都挂掉了,所以我把QQ空间直接设置为全部可见了,点击这个就可以看见了 http://user.qzone.qq.com/554747236/blog/1323780234 想要我的程序和仿真图的朋友可以跟我发邮件啊,我收到了就会发给你们。。做的不好的 ...… 查看全部问答∨ |