L298N模块驱动电机(实现pwm调速)

在这里插入图片描述
1.占空比是高电平所占周期时间与整个周期时间的比值。
2.脉宽调制(PWM)基本原理:
控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。

PWM就是脉冲宽度调制,也就是占空比可变的脉冲波形。

主芯片L298N(双H桥电机驱动芯片,可以驱动两个直流电机或一个步进电机)

功率驱动电源输入12V(最高50V,最低7V)

5v供电需短接板载5v使能(当左边供电超过12v时,应该去除板载5v使能的短接,左边单独5v供电)

六个排针:逻辑输入,最左和最右边是使能端口(相当于开关),高电平有效。

逻辑区表(短接使能)

IN1 IN2 直流电机状态

0 1 正转

1 0 反转

使能端口调节电机转速(用按键都可以通断实现调速)

一定周期内,控制给高电平的时间来实现调速

时钟周期就是时钟振荡周期=1/12M=0.083us

机器周期=12*时钟周期=12/12M=1us

#include<reg52.h> 
#define unit16 unsigned int
int x;
sbit pwm=P1^0;
//right
sbit IN1=P2^0;
sbit IN2=P2^1;
sbit IN3=P2^2;
sbit IN4=P2^3;
//left
sbit IN5=P2^4;
sbit IN6=P2^5;
sbit IN7=P2^6;
sbit IN8=P2^7;
//void delay_s(unsigned int n)    //s
//{  
//    unsigned int i=0,j=0;  
//    for(i=0;i<n;i++)  
//        for(j=0;j<54053;j++);   
//} 
//void delay_ms(unsigned int n)   //ms
//{
//    unsigned int i=0,j=0;
//    for(i=0;i<n;i++)
//        for(j=0;j<123;j++);
//} 
void delay_10um(unsigned int n)     //(10*n)us
{
    while(n--);
} 
void main() 
{ 
 while(1) 
 { 
  IN1=1;
  IN2=0;
  IN3=1;
  IN4=0;
  pwm=1; 
  delay_10um(60);  //占空比为60% 
  pwm=0; 
  delay_10um(40); 
 } 
} 

由于没有示波器,对占空比的验证我用电压值来测试占空比是否为60%(程序占空比为60%)
先测量电池盒外部供电的大小,测量结果如图所示 :
在这里插入图片描述
测量5v供电口,测量结果如图所示:
在这里插入图片描述
我的程序中pwm波输出引脚为P1^ 0,测量P1^0引脚的电压值,测量结果如图所示:
在这里插入图片描述
P1^0引脚的电压为3.07v;

由占空比定义可知5v*60%==3v,

故占空比为60%,测试成功。

  • 83
    点赞
  • 589
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

visual_eagle

欢迎交流学习

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值