关于PWM调速(基础篇) 您所在的位置:网站首页 风扇转速pwm是什么意思 关于PWM调速(基础篇)

关于PWM调速(基础篇)

2024-07-11 10:56| 来源: 网络整理| 查看: 265

       刚步入大学,第一次做小车,准备用delay延时函数来控制小车,效果不佳,熬夜看了多篇关于PWM的代码,发现并不是很详细,所以准备分享一下我的看法和,代码。

        

        PWM调速是通过调节占空比来调节速度,也就是说在高电平的时候转动,低电平时候停止转动,由于间隙很小,所以给我们的感觉就是一直在转动,只不过速度减慢。本来供给L298N的电压为12V,但是调节占空比就可以得到0~12V之间任意一个电压。

        此时就应该讲讲L298N模块了,L298N卸下输出端A旁边的跳线帽可以给单片机提供5V使能,(但是我并不建议,这样可能电机卡死烧坏板子,可以看我小车旁边是使用一个降压模块降压以后再供给了单片机),单片机的I/O口接逻辑输入和通道使能(下图图中有标识)I/O口通过给值给逻辑输入(逻辑输入左边两个接口控制左边输出A,右边两个接口控制右边输出B)来控制逻辑输出的高电平或者低电平,我来解读一下下面这个表:

 IN1,IN2表示输出端的两个口,ENA表示输出端A(如果在不适用PWM调速的时候就不用拔下使能端两侧的跳线帽,此时ENA默认为1,意思就是如果给他高电平他就以12V的电压全速跑,不拔跳线帽也不用对使能端赋值,因为你也赋不了,没有接I/O口),继续解读上表,在ENA=1的时候,如果IN1=1;IN2=0;也就是给电机两端一个高电平一个低电平,假设他正转那么IN1=0;IN2=1;就反转IN1=0;IN2=0;此时就是两端都为低电平,所以呢电机就不转,使用就有人想问,如果两端都赋值为1的话是不是也能刹车,答案是必定的,但是这容易烧坏L298N,但是都为1他的刹车效果更好(我推荐即使想要刹车效果好,但也不要使用都为1,可以采用先使电机反转再停止)在拔下跳线帽ENA=0的时候无论如何赋值电机都不会转动。B使能端同理。

我做的车为循迹小车,先贴下我的总代码,后面还有一步一步解析

#include"reg52.h" #include"intrins.h" sbit ZUO_LUN=P2^0; sbit ZUO1_LUN=P2^1;//左轮 sbit YOU_LUN=P2^2; sbit YOU1_LUN=P2^ 3;//右轮 sbit ENA=P2^4; sbit ENB=P2^5;//使能端 sbit ZUO1_XJ=P1^0; sbit ZUO_XJ=P1^1; sbit ZHONG_XJ=P1^2; sbit YOU_XJ=P1^3; sbit YOU1_XJ=P1^4;//循迹定义 unsigned int PWM_ENA=0; //左侧使能时间 unsigned int PWM_ENB=0; //右侧使能时间 unsigned int PWM=0; //pwm周期为200ms unsigned int CNT,x,y ;//跑圈计数器 void delay(int x) //@11.0592MHz { for(y=0;y14) { STOP(); } else { QIAN_JING(); } } } void main() { Timer0Init(); while(1) { XUN_JI(); } } void timer0()interrupt 1 { TL0 = 0xCD; TH0 = 0xD4; TF0 = 0; if(PWM==200) { PWM=0; } if(PWM


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有