《三路循迹程序.pdf》由会员分享,可在线阅读,更多相关《三路循迹程序.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、/*简单寻迹程序:P1_0 P1_1 接 IN1IN2当 P1_0=1,P1_1=0;时左上电机正转左上电机接驱动板子输出端(蓝色端子OUT1 OUT2)P1_0 P1_1 接 IN1IN2当 P1_0=0,P1_1=1;时左上电机反转P1_0 P1_1 接 IN1IN2当 P1_0=0,P1_1=0;时左上电机停转P1_2 P1_3 接 IN3IN4当 P1_2=1,P1_3=0;时左下电机正转左下电机接驱动板子输出端(蓝色端子OUT3 OUT4)P1_2 P1_3 接 IN3IN4当 P1_2=0,P1_3=1;时左下电机反转P1_2 P1_3 接 IN3IN4当 P1_2=0,P1_3=
2、0;时左下电机停转P1_4 P1_5 接 IN5IN6当 P1_4=1,P1_5=0;时右上电机正转右上电机接驱动板子输出端(蓝色端子OUT5 OUT6)P1_4 P1_5 接 IN5IN6当 P1_4=0,P1_5=1;时右上电机反转P1_4 P1_5 接 IN5IN6当 P1_4=0,P1_5=0;时右上电机停转P1_6 P1_7 接 IN7IN8当 P1_6=1,P1_7=0;时右下电机正转右下电机接驱动板子输出端(蓝色端子OUT7 OUT8)P1_6 P1_7 接 IN7IN8当 P1_6=0,P1_7=1;时右下电机反转P1_6 P1_7 接 IN7IN8当 P1_6=0,P1_7=
3、0;时右下电机停转P3_2 接三路寻迹模块接口第一路输出信号即中控板上面标记为OUT1P3_3 接三路寻迹模块接口第二路输出信号即中控板上面标记为OUT2P3_4 接三路寻迹模块接口第三路输出信号即中控板上面标记为OUT3三路寻迹传感器有信号(白线)为 0没有信号(黑线)为 1三路寻迹传感器电源+5V GND 取自于单片机板靠近液晶调节对比度的电源输出接口*/#include#define Left_ledP3_2/P3_4 接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1#define Among_ledP3_3/P3_5 接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2
4、#define Right_ledP3_4/P3_6 接四路寻迹模块接口第三路输出信号即中控板上面标记为 OUT3#define Back_Left_ledP3_5/P3_7 接四路寻迹模块接口第四路输出信号即中控板上面标记为 OUT4#define Back_Among_ledP3_6/P3_6 接四路寻迹模块接口第五路输出信号即中控板上面标记为OUT5#define Back_Right_ledP3_7/P3_7 接四路寻迹模块接口第六路输出信号即中控板上面标记为 OUT6#define Left_moto_goP1_0=1,P1_1=0,P1_2=1,P1_3=0;/左边两个电机向前走#
5、define Left_moto_backP1_0=0,P1_1=1,P1_2=0,P1_3=1;/左边两个 电机向 后转#define Left_moto_StopP1_0=0,P1_1=0,P1_2=0,P1_3=0;/左边两个电机停转#define Right_moto_goP1_4=1,P1_5=0,P1_6=1,P1_7=0;/右边两个 电机向 前走#define Right_moto_backP1_4=0,P1_5=1,P1_6=0,P1_7=1;/右边两个 电机向 前走#define Right_moto_StopP1_4=0,P1_5=0,P1_6=0,P1_7=0;/右边两个
6、电机停转/*/延时函数void delay(unsigned int k)unsigned int x,y;for(x=0;xk;x+)for(y=0;y2000;y+);/*/前速前进voidrun(void)Left_moto_go;/左电机往前走Right_moto_go;/右电机往前走/前速后退voidbackrun(void)Left_moto_back;/左电机往前走Right_moto_back;/右电机往前走/左转voidleftrun(void)Left_moto_back;/左电机往前走Right_moto_go;/右电机往前走/右转voidrightrun(void)Le
7、ft_moto_go;/左电机往前走Right_moto_back;/右电机往前走voidstop(void)Left_moto_Stop;/左电机往前走Right_moto_Stop;/右电机往前走/*/*/*-主函数-*/void main(void)unsigned char flag1=0,flag2=0;delay(100);while(1)if(flag1=1&flag2=1)/后传感碰到起始黑线,前传感碰到终点黑线if(Back_Left_led=0&Back_Among_led=0&Back_Right_led=0)/三个传感器没检测到黑线backrun();elseif(Ba
8、ck_Left_led=0&Back_Among_led=0&Back_Right_led=1)/右边检测到黑线rightrun();elseif(Back_Left_led=0&Back_Among_led=1&Back_Right_led=0)/中间检测到黑线run();elseif(Back_Left_led=0&Back_Among_led=1&Back_Right_led=1)/右边检测到黑线rightrun();elseif(Back_Left_led=1&Back_Among_led=0&Back_Right_led=0)/左边检测到黑线leftrun();elseif(Back
9、_Left_led=1&Back_Among_led=0&Back_Right_led=1)/两边检测到黑线,中间检测不到信号stop();elseif(Back_Left_led=1&Back_Among_led=1&Back_Right_led=0)/左边检测到黑线leftrun();else/三个传感器检测到黑线stop();else/后传感碰到起始黑线,前传感没有碰到终点黑线flag2=1;if(Left_led=0&Among_led=0&Right_led=0)/三个传感器没有检测到黑线run();elseif(Left_led=0&Among_led=0&Right_led=1)
10、/右边检测到黑线rightrun();elseif(Left_led=0&Among_led=1&Right_led=0)/中间检测到黑线run();elseif(Left_led=0&Among_led=1&Right_led=1)/右边检测到黑线rightrun();elseif(Left_led=1&Among_led=0&Right_led=0)/左边检测到黑线leftrun();elseif(Left_led=1&Among_led=0&Right_led=1)/两边检测到黑线,中间检测不到信号stop();elseif(Left_led=1&Among_led=1&Right_led=0)/左边检测到黑线leftrun();else if(Left_led=1&Among_led=1&Right_led=1)/三个传感器检测到黑线stop();delay(500);flag1=1;