L298芯片通过51单片机控制两个直流电机,要求两个电机都可以 独立(互不相关) 加速,减速,转向 。

如上... 如上 展开
 我来答
老六vlog
推荐于2018-04-10 · TA获得超过128个赞
知道答主
回答量:25
采纳率:0%
帮助的人:10.1万
展开全部

可以,如wang17077869所述差不多。但对于你提的问题,可以作如下细化:

1.加减速问题。用PWM(直观点说就是一串连续的高低电平)可以做到,占空比越大,电压越高,速度越快。

2,独立问题。这个可以用一个定时器来做,其实,就是用这个定时器来产生两路独立的PWM,而这两路PWM信号分别给两个电机,这样两个电机就相互独立。

   下面是我写的一个小程序,在protues中仿真过,相互独立。

   下面是定时器的程序:

//两个电机的速度用参数G_pwm_num0,G_pwm_num1来控制,out1~out4分别接两个电机(具体对应关系你看一下就明了)。

 

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

sbit out1=P2^0;

 

sbit out2=P2^1;

sbit out3=P2^2;

sbit out4=P2^3;

bit pwm0;bit pwm1;

bit o1,o2,o3,o4;

 

uchar  G_pwm_num0=50;//(占空比为50%),这两个参数的最大值为100,因为下面count<=100,可以改,但不要太小也不要太大,这为什么,希望你自己想一下。)

uchar  G_pwm_num1=50;

uchar  count;

void time_init()

{

    TMOD=0x21;

    EA=1;

    TH1=156;

    TL1=156;

    TR1=1;

    ET1=1;

    ET0=1;

    TH0=0;

    TL0=0;

}

void time1() interrupt 3

{

   count++;

   if(count<G_pwm_num0)

      pwm0=1;

   else pwm0=0;

   if(count<G_pwm_num1)

      pwm1=1;

   else pwm1=0;

   if(count==100) //这里的占空比是这样算的(G_pwm_num0/100,G_pwm_num1/100)

      {

         count=0;

         

      }

   else _nop_();

   out1=o1&&pwm0;//left+

   out2=o2&&pwm0;

   

   out3=o3&&pwm1;//right+

   out4=o4&&pwm1;

   

}

void main()

{

   time_init();

 

   G_pwm_num0=60;//占空比为60%,可自行定义大小

   o1=1;

   o2=0;//当两者都为0时,停止

 

   G_pwm_num1=30;

   o3=1;

   o4=0;

   while(1);

}

 

 

说明:那程序怎么控制转向呢?

         相信你也知道 ,电机的两个脚正接反接时转向是不一样的。

       在上面的程序中,o1,o2是电机的转向控制参数。假如正转时o1=1,o2=0;那反转时就反过来,o1=0,o2=1;这样当你要转速时改变这两个参数的值就可以了。

 

 

     希望对你有帮助,还有问题,我们可以相互探讨一下,呵呵。

 

下面是仿真图:

 

     

 

 

两张图的占空比不一样的,而且相互独立。


2024-11-14 广告
深圳市响河测控技术有限公司,坐落于电力电子产业密集的珠三角地区--广东深圳,是国内外前列的电力电子测试设备研发制造商,致力于为电力电子、科研提供高可靠性、高精度的电子测试设备。响河测控技术起源于航天航空产业,具备雄厚的技术研发力量及对高精度... 点击进入详情页
本回答由提供
wang17077869
2012-10-21
知道答主
回答量:13
采纳率:0%
帮助的人:11.6万
展开全部
L298N可以驱动两个直流电机和一个步进电机。有两个使能端ENa和ENb分别控制电机output12和output34。而单片机通过控制4个输入IN口对其控制。比如IN1=1;IN2=0;使能端ENa=1;时,电机1就正传。IN1=0;IN2=1;ENa=1;就反转。关闭使能端ENa=0;或者IN1=IN2时就不转了。至于减速是调速的问题,可通过定时器产生PWM脉冲,调节低电平占空比达到。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Iris_157
2014-03-10 · 超过28用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:79.3万
展开全部
那个最长的答案
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式