找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4041|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

巡線小車(chē) 三路傳感器單片機(jī)源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:303605 發(fā)表于 2018-4-8 12:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)源程序如下:
  1. int you=18;
  2. int zuo=14;
  3. int zhong=16;
  4. void setup()
  5. {
  6.   pinMode( you, INPUT);//youbian
  7.   pinMode( zhong, INPUT);//zhognjian
  8.   pinMode( zuo, INPUT);//zuobian  
  9.   pinMode( 10, OUTPUT);
  10.   pinMode( 6, OUTPUT);
  11.   pinMode( 5, OUTPUT);
  12.   pinMode( 9, OUTPUT);
  13. }

  14.          void loop()
  15.           {
  16.             tracing();
  17.           }

  18. void tracing()
  19. {
  20.     if (( !( digitalRead(zhong) ) && ( digitalRead(zuo) && digitalRead(you) ) ))
  21.     {go2();}
  22.     if (( digitalRead(zhong) && ( digitalRead(zuo) && digitalRead(you) ) ))
  23.     {go6();}
  24.     if (( !( digitalRead(zhong) ) && ( !( digitalRead(zuo) ) && !( digitalRead(you) ) ) ))
  25.     {go3();}
  26.     if (( digitalRead(zhong) && ( digitalRead(you) && !( digitalRead(zuo) ) ) ))
  27.     {left();}
  28.     if (( !( digitalRead(zhong) ) && ( !( digitalRead(zuo) ) && digitalRead(you) ) ))
  29.     {left2();}
  30.     if (( digitalRead(zhong) && ( digitalRead(zuo) && !( digitalRead(you) ) ) ))
  31.     {right();}   
  32.     if (( !( digitalRead(zhong) ) && ( digitalRead(zuo) && !( digitalRead(you) ) ) ))
  33.     {right2();}
  34. }

  35. void left()
  36. {
  37. int num2;
  38.    while(1){
  39.     num2=digitalRead(zhong);         //循環(huán)判斷youbian傳感器度數(shù),
  40.     if(num2==1)
  41.     {  turnL();                    //如果num2==0說(shuō)
  42.      delay(2);}
  43.      else
  44.      break;                      //檢測(cè)到num2==0說(shuō)明轉(zhuǎn)過(guò)頭了,跳出循環(huán),檢測(cè)三個(gè)傳感器的狀態(tài)再做出相應(yīng)動(dòng)作
  45.    }   
  46. }
  47. void turnL()
  48. {
  49.     analogWrite(5 , 150);
  50.     analogWrite(6 , 0);
  51.     analogWrite(9 , 0);
  52.     analogWrite(10 , 150);
  53. }
  54. void left2()
  55. {
  56.   int num2;
  57.    while(1){
  58.     num2=digitalRead(zuo);         //循環(huán)判斷youbian傳感器度數(shù),
  59.     if(num2==0)
  60.     {  turnL2();                    //如果num2==0說(shuō)
  61.      delay(2);}
  62.      else
  63.      break;                      //檢測(cè)到num2==0說(shuō)明轉(zhuǎn)過(guò)頭了,跳出循環(huán),檢測(cè)三個(gè)傳感器的狀態(tài)再做出相應(yīng)動(dòng)作
  64.    }
  65. }

  66. void turnL2()
  67. {
  68.     analogWrite(5 , 255);
  69.     analogWrite(6 , 0);
  70.     analogWrite(9 , 0);
  71.     analogWrite(10 , 255);
  72. }
  73. void right()
  74. {
  75.    int num2;
  76.    while(1){
  77.     num2=digitalRead(zhong);         //循環(huán)判斷youbian傳感器度數(shù),
  78.     if(num2==1)
  79.     {  turnR2();                    //如果num2==0說(shuō)
  80.      delay(2);}
  81.      else
  82.      break;                      //檢測(cè)到num2==0說(shuō)明轉(zhuǎn)過(guò)頭了,跳出循環(huán),檢測(cè)三個(gè)傳感器的狀態(tài)再做出相應(yīng)動(dòng)作
  83.    }   
  84. }
  85. void turnR2()
  86. {
  87.     analogWrite(5 , 0);
  88.     analogWrite(6 , 150);
  89.     analogWrite(9 , 150);
  90.     analogWrite(10 , 0);
  91. }

  92. void right2()
  93. {  int num2;
  94.    while(1){
  95.     num2=digitalRead(you);         //循環(huán)判斷youbian傳感器度數(shù),
  96.     if(num2==0)
  97.     {  turnR();                    //如果num2==0說(shuō)
  98.      delay(2);}
  99.      else
  100.      break;                      //檢測(cè)到num2==0說(shuō)明轉(zhuǎn)過(guò)頭了,跳出循環(huán),檢測(cè)三個(gè)傳感器的狀態(tài)再做出相應(yīng)動(dòng)作
  101.    }   
  102. }
  103. void turnR()
  104. {
  105.     analogWrite(5 , 255);
  106.     analogWrite(6 , 0);
  107.     analogWrite(9 , 255);
  108.     analogWrite(10 , 0);
  109. }

  110. void go2()
  111. {
  112.     analogWrite(5 , 255);
  113.     analogWrite(6 , 0);
  114.     analogWrite(9 , 255);
  115.     analogWrite(10 , 0);
  116. }

  117. void go3()
  118. {
  119.     analogWrite(5 , 255);
  120.     analogWrite(6 , 0);
  121.     analogWrite(9 , 255);
  122.     analogWrite(10 , 0);
  123. }

  124. void go6()
  125. {
  126.     analogWrite(5 , 240);
  127.     analogWrite(6 , 10);
  128.     analogWrite(9 , 250);
  129.     analogWrite(10 , 10);
  130. }


復(fù)制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:366693 發(fā)表于 2018-7-10 17:55 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表