标题: 寻迹 小车程序 [打印本页]

作者: 空城123    时间: 2018-3-31 20:59
标题: 寻迹 小车程序

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit Motor_left_vcc=P1^0;  //控制左电机正极
sbit Motor_left_gnd=P1^1;  //控制左电机负极
sbit Motor_right_vcc=P1^2;  //控制右电机正极
sbit Motor_right_gnd=P1^3;  //控制右电机负极
sbit Left=P1^4;  //寻迹左  碰到黑线输入低电平
sbit Right=P1^5;  //寻迹右
void delay(uint x)
{
        uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void Motor_Pwm_Go(uint x)  // 直走占空比 1/x+1
{
        Motor_left_vcc=1;
        Motor_left_gnd=0;
        Motor_right_vcc=1;
        Motor_right_gnd=0;
        delay(1);
        Motor_left_vcc=0;
        Motor_left_gnd=0;
        Motor_right_vcc=0;
        Motor_right_gnd=0;
        delay(x);
}
void Motor_Pwm_Left(uint x)  //左转
{
        Motor_left_vcc=0;
        Motor_left_gnd=0;
        Motor_right_vcc=1;   //左转:右边电机转,左边电机不转
        Motor_right_gnd=0;
        delay(1);
        Motor_left_vcc=0;
        Motor_left_gnd=0;
        Motor_right_vcc=0;
        Motor_right_gnd=0;
        delay(x);
}
void Motor_Pwm_Right(uint x)  //右转
{
        Motor_left_vcc=1;
        Motor_left_gnd=0;
        Motor_right_vcc=0;
        Motor_right_gnd=0;
        delay(1);
        Motor_left_vcc=0;
        Motor_left_gnd=0;
        Motor_right_vcc=0;
        Motor_right_gnd=0;
        delay(x);
}
void Motor_Pwm_Stop()  //停
{
        Motor_left_vcc=0;
        Motor_left_gnd=0;
        Motor_right_vcc=0;
        Motor_right_gnd=0;
}
void Motor_Pwm_Down(uint x)  //后退
{
        Motor_left_vcc=0;
        Motor_left_gnd=1;
        Motor_right_vcc=0;
        Motor_right_gnd=1;
        delay(1);
        Motor_left_vcc=0;
        Motor_left_gnd=0;
        Motor_right_vcc=0;
        Motor_right_gnd=0;
        delay(x);
}

void main()
{
        if(Left==0)   //左边碰到黑线,右边不可能碰到黑线,所以不需要检测右边传感器的值
{
        Motor_Pwm_Left(10);  //左转
}
        if(Right==0)   //右边碰到黑线,
{
        Motor_Pwm_Right(10);  //左转
}
   if(Left==1&&Right==1)  //都没碰到黑线,直走
{
        Motor_Pwm_Go(10) ;
}
  
       
}





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1