电机控制
直播中

Lango.

8年用户 15经验值
擅长:可编程逻辑 电源/新能源 模拟技术 测量仪表 EMC/EMI设计 嵌入式技术 制造/封装 存储技术 CRF/无线 接口/总线/驱动 处理器/DSP 光电显示 控制/MCU EDA/IC设计 RF/无线 MEMS/传感技术
私信 关注
[问答]

【求助】红外寻迹模块加入电调之中,达不到程序所写结果。

因为刚刚开始玩电调,所以不太懂,程序中加入红外寻迹之后却达不到所想要的结果。我想要通过寻迹模块来控制涵道电机的转速,但是结果却难以达到(只有可以改变一次状态),请问是什么原因,还是电调不可以这样控制呐?

部分程序如下:
/************************************************************************/
/*                电机控制速度                            */
/************************************************************************/
/*                                                                      */
void left_small (void)
{
    push_val_left1 = duojishu[3];
          push_val_left2 = duojishu[2];
}
void right_small (void)
{
    push_val_left1 = duojishu[2];
          push_val_left2 = duojishu[3];
}

void straight (void)
{
    push_val_left1 = duojishu[3];
          push_val_left2 = duojishu[3];
}

void stop (void)
{
    push_val_left1 = duojishu[0];
          push_val_left2 = duojishu[0];
}
void left_big (void)
{
    push_val_left1 = duojishu[3];
          push_val_left2 = duojishu[0];
}
void right_big (void)
{
    push_val_left1 = duojishu[0];
          push_val_left2 = duojishu[3];
}
/************************************************************************/
/*                小车寻迹                     */
/************************************************************************/
/*                                                                      */
                 
void xiaoche()                       
{   uchar n;
        if( (P13==1 && P12==1 && P11==1 && P10==1)
         || (P13==0 && P12==0 && P11==0 && P10==0)  )       
                straight ();         delay1ms(5000);


        if( P13==1 && P12==0 && P11==1 && P10==1 )               
                 left_small ();delay1ms(5000);

        if( (P13==0 && P12==0 && P11==0 && P10==1)
         || (P13==0 && P12==0 && P11==1 && P10==1)
         || (P13==0 && P12==1 && P11==0 && P10==1)
         || (P13==0 && P12==1 && P11==1 && P10==1) )                 
                 left_big ();delay1ms(5000);

        if( P13==1 && P12==1 && P11==0 && P10==1 )                       
                 right_small();delay1ms(5000);

        if( (P13==1 && P12==0 && P11==0 && P10==0)
         || (P13==1 && P12==0 && P11==1 && P10==0)
         || (P13==1 && P12==1 && P11==0 && P10==0)
         || (P13==1 && P12==1 && P11==1 && P10==0) )                       
                 right_big();delay1ms(5000);
        if(P13==0 && P12==0 && P11==0 && P10==0)
        {
                n++;
                if(n==2)
                        stop();delay1ms(5000);
}               
}

/************************************************************************/
/*                    Ö÷º¯Êý                             */
/************************************************************************/
/*                                                                      */
void main()
{        
        TMOD = 0x01;
                        
        TH0 = (65536 - 70)/256;          //70US¶¨Ê±
        TL0 = (65536 - 70)%256;
        TR0 = 1;
        ET0 = 1;                 
        EA  = 1;            
       
        push_val_left1 = duojishu[0]; //
       push_val_left2 = duojishu[0];
        delay1ms(5000);delay1ms(5000);delay1ms(5000);
        delay1ms(5000);delay1ms(5000);delay1ms(5000);
        delay1ms(5000);delay1ms(5000);delay1ms(5000);
        delay1ms(5000);delay1ms(5000);delay1ms(5000);
        delay1ms(5000);delay1ms(5000);delay1ms(5000);
  push_val_left1 = duojishu[3];
  push_val_left2 = duojishu[3];

        while(1)
{          

         xiaoche();



}  
}



已退回6积分

更多回帖

发帖
×
20
完善资料,
赚取积分