完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
我想使小车实现先直走后循迹的功能,这段程序已经能实现循迹,
#include #define sen_port P0 //传感器入口 ***it IN1=P1^0; ***it IN2=P1^1; ***it IN3=P1^2; ***it IN4=P1^3; ***it EN1=P1^4; ***it EN2=P1^5; ***it IN1a=P2^0; ***it IN2a=P2^1; ***it IN3a=P2^2; ***it IN4a=P2^3; ***it EN1a=P2^4; ***it EN2a=P2^5; void delay(int n) //延时子程序 { unsigned char i,j,k; for(i=n;i>0;i--); for(j=50;j>0;j--); for(k=100;k>0;k--); } unsigned char sensor_inp() { unsigned char sensor; sensor=sen_port; sensor&=0x0f; //P0=sensor; return sensor; } void faward() { EN1=1; EN2=1; IN1=1; IN2=0; IN3=1; IN4=0;EN1a=1; EN2a=1; IN1a=1; IN2a=0; IN3a=1; IN4a=0;} void turn_right() { EN1=1; EN2=1;EN1a=1; EN2a=1;IN1=1; IN2=0;IN3=0; IN4=1;IN1a=1; IN2a=0; IN3a=0; IN4a=1; } void turn_right1() { EN1=1; EN2=1;EN1a=1; EN2a=1;IN1=1; IN2=0;IN3=0; IN4=0;IN1a=1; IN2a=0; IN3a=0; IN4a=1; }//右单轮停 void turn_left() {EN1=1; EN2=1; IN1=0; IN2=1; IN3=1; IN4=0;EN1a=1; EN2a=1; IN1a=0; IN2a=1; IN3a=1; IN4a=0;} void turn_left1() {EN1=1; EN2=1; IN1=0; IN2=0; IN3=1; IN4=0;EN1a=1; EN2a=1; IN1a=0; IN2a=1; IN3a=1; IN4a=0;} //左单轮停 void back() {EN1=1; EN2=1; IN1=0; IN2=1; IN3=0; IN4=1;EN1a=1; EN2a=1; IN1a=0; IN2a=1; IN3a=0; IN4a=1;delay(100); } void ts() { EN1=1; EN2=1; IN1=0; IN2=1; IN3=0; IN4=1;EN1a=1; EN2a=1; IN1a=1; IN2a=0; IN3a=0; IN4a=0;} void main(void) { P0=0x0f; while(1) { switch( sensor_inp() ) { case 0x00: faward();delay(100);//全白线 前进 case 0x01: turn_left();delay(120);break; //左在线上,左大转 case 0x02: turn_left();delay(90); break; //中右在线上,右中转 case 0x03: turn_left();delay(80);break; //右、中右在线上,右小转 case 0x04: turn_right(); delay(100);break; case 0x05: ts();delay(90);break; case 0x06: turn_left();delay(90);break; case 0x07: turn_left();delay(90);break; case 0x08: turn_right();delay(120);break; case 0x09: faward(); break; case 0x0a: turn_right();delay(100);break; case 0x0b: turn_left();delay(90); break; //左出线,往右拐 case 0x0c: turn_right();delay(80); break; //右出,往左拐 case 0x0d:turn_right();delay(90); break; case 0x0e: turn_right();delay(100);break; case 0x0f: back();delay(100);break; default: faward(); break; } } } 然后我在主程序加上faward();delay(100);,小车一直直走,无法循迹。 求大手指教啊~~! |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16901 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:02 , Processed in 0.458523 second(s), Total 67, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1483