传感器接法.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
传感器接法

传感器接法 红外传感器接法 前红外: 数字9 左红外: 数字15 左45度角红外: 数字10 右45度角红外: 数字8 右红外: 数字14 火焰传感器接法 左火焰: 模拟3 中火焰: 模拟5 右火焰: 模拟4 (底部)灰度传感器: 模拟2 声控传感器: 模拟6 程序说明 #define p 120 //定义火焰传感器检测到火焰的返回值 int k,j,i=0,n,b=1,c=1; //程序控制变量,不必更改 int m=i; int pro,end=1; void main() //主程序 { while(analog(6)100) //声控启动 { } while(!(analog(2)100)) //走出白色超始区 { motor(0,80); motor(1,80); } pro=start_process(test()); //启动地面标志线检测进程 while(1) //灭火与迷宫程序切换 { if (analog(3) { fire(); } else //没有发现火焰,进入迷宫子程序 { migong(); } } } void migong() //迷宫子程序 { if(digital(8)==0 || digital(9)==0) //如果前方 或 右45度角红外检测到障碍物,左转 { motor(0,-70); //根据情况,调节功率参数,以下雷同 motor(1,70); } else if(digital(14)==0 digital(9)==1 digital(8)==1) //如果只右方有障碍物,直行 { motor(0,100); motor(1,100); } else //如果没有障碍物,右转 { motor(0,100); motor(1,-100); motor(1,10); motor(0,90); } if((i2)(im)) //如果标志线数大于2且标志线有变化(针对1、2、3号房间) { stop(); while(analog(3)150 analog(5)150 analog(4)150) //如果没有检测到火焰 { motor(0,70); //右转 motor(1,-70); if(digital(14)==0) //右红外检测到障碍物,停止转动 break; } m=i+1; //更改标志线的对比变量 } if(i==1 b (analog(3)150 analog(5)150 analog(4)150)) //4号房间,检测到第1条标志线,且没有火焰 { while(digital(9)==0 || digital(8)==0 || digital(14)==0) //任意右手红外传感器有障碍物,右转 { motor(0,70); motor(1,-70); } while(digital(9)==1) //前方传感器没有障碍物,右前进 { motor(0,100); motor(1,70); } b=0; //控制变量 } } void fire() //灭火子程序 { if((i4 || i8) c) //如果在2号房间 { while(analog(3) { motor(0,-60); motor(1,60); } motor(0,60); //强制直行一段 motor(1,60); //主要是解决2号房间右手法则灭火时的碰墙的情况 sleep(0.6); c=0; } while(analog(5)10 analog(2)60) //如果火焰距离合适 且 检测到地面标志线,灭火 { motor(0,-10); //后退一段 motor(1,-10); sleep(0.15); stop(); motor(2,100); //灭火 sleep(2.000); stop(); motor(0,-70); //灭完火,后退一段 motor(1,-100); sleep(0.2); kill_process(pro); //关掉地面标志线检测进程 select(); //进入回家子程序选择子程序 } while(analog(3)-analog(4) 3) //向右调整,如果调整较频繁,修改最后的3 { motor(0,50); motor(1,-50); } while(analog(4)-analog(3) 3) //向左调整,同上 { motor(0,-50); motor(1,50)

文档评论(0)

1234554321 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档