📄 +Ȧ
字号:
#ifndef _CHE_H_
#define _CHE_H_
#include "value.h"
void go() //小车前进
{
qu_ll = 1;
qu_zl = 0;
qu_zr = 0;
qu_rr = 1;
}
void back() //小车后退
{
qu_ll = 0;
qu_zl = 1;
qu_zr = 1;
qu_rr = 0;
}
void left() //小车左转 左边轮子停下、右边轮子前进
{
qu_ll = 0;
qu_zl = 0;
qu_zr = 0;
qu_rr = 1;
}
void left_s() //小车左转 左边轮子后退、右边轮子前进
{
qu_ll = 0;
qu_zl = 1;
qu_zr = 0;
qu_rr = 1;
}
void stop() //小车停下
{
qu_ll = 0;
qu_zl = 0;
qu_zr = 0;
qu_rr = 0;
}
void right() //小车右转 左边轮子前进、右边轮子停下
{
qu_ll = 1;
qu_zl = 0;
qu_zr = 0;
qu_rr = 0;
}
void right_s() //小车右转 左边轮子前进、右边轮子后退
{
qu_ll = 1;
qu_zl = 0;
qu_zr = 1;
qu_rr = 0;
}
void che_90_180_break(uchar dat)
{
uchar i_z = 0;
while(1) //循环等待中间寻迹传感器到黑线上
{
if(dat == L)
{
if(xun_l == 0)
{
i_z++;
if(i_z > 30) //消除干扰
{
i_z = 0;
stop();
delay_1ms(100);
break;
}
}
}
if(dat == R)
{
if(xun_r == 0)
{
i_z++;
if(i_z > 30)
{
i_z = 0;
stop(); //
delay_1ms(100);
break;
}
}
}
// if(xun_z == 0) //如果中间那寻迹传感器到了黑线上,要让小车停下来前进了
// {
// i_z++; //消去干扰
// if(i_z >= 20) //10次之后就确定寻迹模块的中间传感器到黑线上了
// {
// if(dat == L) //如果是左转90度就让右转的方法制动
// right_s();
// else
// left_s(); //如果是右转90度就让左转的方法制动
// delay_1ms(15);
// stop();
// delay_1ms(70);
// break; //break退出while(1)这个死循环
// }
// }
// else //没有在黑钱上就给i_z变量清零
// {
// i_z = 0;
// }
}
}
void left_s_90_while() //小车向左转90度
{
// go(); //前进一小会让小车转90度时刚好让黑线在小车的中间
// delay_1ms(70);
left_s(); //左转90度注意这个延时不能太长 只要能让寻迹模块中间的传感离开黑线就好
delay_1ms(300);
che_90_180_break(L);
}
void right_s_90_while() //小车向右转90度
{
// go(); //前进一小会让小车转90度时刚好让黑线在小车的中间
// delay_1ms(70);
right_s(); //左转90度注意这个延时不能太长 只要能让寻迹模块中间的传感离开黑线就好
delay_1ms(300);
che_90_180_break(R);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -