打印
[活动]

21ic项目外包平台DIY大赛——diy智能蓝牙小车

[复制链接]
224|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
非常感谢21ic给予这次diy机会。也是一个很好的机会学习机会,能够更好的参与这种活动。首先上开箱
接下来是具体步骤:
1.焊接电机正负极,注意极性

2.固定电机,用螺丝刀和钳子拧紧固定电机

3.安装万向轮铜柱


4.安装万向轮

5.焊接灯和电池盒

6.其他硬件固定。

7.焊接好的线

8.安装固定轮子

安装好的实物图





软件调试:
//前进
void run(void)
{
        Left_moto_go ;   //左电机往前走
        Right_moto_go ;  //右电机往前走
}

//左转
void leftrun(void)
{         
         Right_moto_go ;  //右电机往前走
     Left_moto_Stop ;  //左电机停止
}

//右转
void  rightrun(void)
{
     Left_moto_go  ;   //左电机往前走
         Right_moto_Stop   ;  //右电机往前走       
}

//后退
void back(void)
{
   Left_moto_back  ;  // 左轮后退
   Right_moto_back  ;  // 左轮后退
}

//停转
void stop(void)
{
  Right_moto_Stop  ;   //停转
  Left_moto_Stop   ;   //
}


//左旋转
void tleft(void)
{
        Left_moto_back  ;   //左电机后退
        Right_moto_go ;  // 右电机前进
}

//右旋转
void tright(void)
{
        Left_moto_go  ;   //左电机前进
        Right_moto_back  ;  //右电机后退
}


/************************************************************************/
//                   PWM调制电机转速                                   

//                   左电机调速                                       
/*调节push_val_left的值改变电机转速,占空比*/
void pwm_out_left_moto(void)
{  
     if(Left_PWM_ON)
     {
          if(pwm_val_left<=push_val_left)
              {
                   EN1=1;
              }
              else
              {
                   EN1=0;
          }
          if(pwm_val_left>=32)
              pwm_val_left=0;
     }
     else   
     {
          EN1=0;   //若未开启PWM则EN1=0 左电机 停止
     }
}
/******************************************************************/
/*                    右电机调速                                  */  
void pwm_out_right_moto(void)
{
    if(Right_PWM_ON)
    {
        if(pwm_val_right<=push_val_right)        //20ms内电平信号 111 111 0000 0000 0000 00
            {
                EN2=1;                                                         //占空比6:20
        }
            else
            {
                EN2=0;
        }
            if(pwm_val_right>=32)
            pwm_val_right=0;
    }
    else   
    {
        EN2=0;          //若未开启PWM则EN2=0 右电机 停止
    }
}


//TIMER0中断服务子函数产生PWM信号
void timer0()interrupt 1 using 2
{
     TH0=0XFC;          //1Ms定时
         TL0=0X66;
         pwm_val_left++;
         pwm_val_right++;
         pwm_out_left_moto();
         pwm_out_right_moto();
}       

void timer2()  interrupt 5         //定时器2
{
         TF2 = 0;
     TH2 = 0;          //1Ms定时
         TL2 = 0;
}
/******************************************************************/
/* 串口中断程序*/
/*****************************************************************





使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10553

主题

11155

帖子

11

粉丝