_Daniel_ 发表于 2011-6-9 15:12:23

请问一下小车为什么不能控制?

P2^2,P2^5,P2^6,P2^7,这四个口用来控制小车前进后退和转向,我用电压表测量过,明明有电压变化。但是小车就是不反应,为什么啊


   if(P22==1)//前进
       {
       Speed_need=20;
       }
       else if(P25==1)//后退
       {
       Speed_need=-20;
       }
       else//静止
       {
       Speed_need=0;
       }
//左右变量控制
   if(P26==1)//左转
       {
       Turn_need=40;
       }
       else if(P27==1)//右转
       {
       Turn_need=-40;
       }
       else//不转
       {
       Turn_need=0;
       }


            position+=Speed_need;
            PWM = Kp_angle*angle+Kd_angle*angle_dot+Kp_speed*position_dot_filter+Ki_speed*position;

       PWM_L=PWM+Turn_need;
       PWM_R=PWM-Turn_need;

jssd 发表于 2011-6-9 15:16:53

把硬件图画出来

_Daniel_ 发表于 2011-6-9 15:35:10

回复【1楼】jssd 龙
-----------------------------------------------------------------------

硬件图?不需要了吧,就这么说,这四个口能够明显有电压的变化,我用万用表量过的,但是小车就是不受控制,应该不是硬件的问题。

kenny17 发表于 2011-6-9 16:18:16

lz有用什么电机驱动芯片吗?

_Daniel_ 发表于 2011-6-9 16:21:46

回复【3楼】kenny17
-----------------------------------------------------------------------

L298N

_Daniel_ 发表于 2011-6-9 16:21:58

回复【3楼】kenny17
-----------------------------------------------------------------------

L298N

_Daniel_ 发表于 2011-6-9 16:23:14

回复【5楼】_Daniel_ _落魄書生_
-----------------------------------------------------------------------

其实之前单独用无线控制器控制电机转动是可以的,但是一旦放入程序中就没什么反应了,不知道有没有人遇到过?

kenny17 发表于 2011-6-9 16:49:48

回复【楼主位】_Daniel_ _落魄書生_
我用电压表测量过,明明有电压变化。但是小车就是不反应,为什么啊
-----------------------------------------------------------------------
先把电机撤去,看L298的输出电压正常不,你测的是控制端的电压而已吧

_Daniel_ 发表于 2011-6-9 17:19:57

回复【7楼】kenny17
-----------------------------------------------------------------------

可以的,我试过,单独控制的程序,电机是可以转的,但是放入主程序后,不管这么弄都不转

jssd 发表于 2011-6-10 09:32:49

引脚驱动力不够?在P2口加10K上拉电阻看看。LZ说单独控制可以转,不明白是什么。可以先把单片机拆下来,在控制L298的引脚直接接正负端看看能不能动,如果能,说明问题在单片机这边,不能则是L298后的问题。实测单片机这个脚有输出的话,应该是驱动力不够,加个三极管或门电路再接L298。

jssd 发表于 2011-6-10 09:36:42

可以直接让四个控制脚输出高或低电平,看看行不行。如果行,则是程序问题,不行则是硬件问题

_Daniel_ 发表于 2011-6-10 21:02:16

回复【10楼】jssd 龙
-----------------------------------------------------------------------

一定是程序的问题,但是我不明白为什么会这样,因为我是仿照别人的程序,别人可以,我的就不行

BadGuy 发表于 2011-6-10 22:35:43

你怎么就肯定是程序 问题呢???我觉得9,10楼正解!!!!先看看问题发生在哪吧.......

_Daniel_ 发表于 2011-6-11 00:23:35

回复【12楼】BadGuy
-----------------------------------------------------------------------

因为我都测试过了,肯定是程序的问题,这样说吧
   if(P26==1)//左转
       {
       Turn_need=40;
       }
       else if(P27==1)//右转
       {
       Turn_need=-40;
       }
       else//不转
       {
       Turn_need=0;
       }
          PWM=0;       
          PWM_L=PWM+Turn_need;
          PWM_R=PWM-Turn_need;
这样的话,我前后不能控制,但是左右能控制,很明显的
但是


      if(P22==1)//前进
       {
       Speed_need=200;
       }
       else if(P25==1)//后退
       {
       Speed_need=-200;
       }
       else//静止
       {
       Speed_need=0;
       }
//左右变量控制
   if(P26==1)//左转
       {
       Turn_need=40;
       }
       else if(P27==1)//右转
       {
       Turn_need=-40;
       }
       else//不转
       {
       Turn_need=0;
       }
   position+=Speed_need;
   PWM = Ki_speed*position;

       PWM_L=PWM+Turn_need;
       PWM_R=PWM-Turn_need;
这样前后也没反应,左右只有一个轮子有反应,而且特慢,求原因

_Daniel_ 发表于 2011-6-11 00:48:34

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4798103&bbs_id=9999
页: [1]
查看完整版本: 请问一下小车为什么不能控制?