久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12642|回復: 8
收起左側

小白做的尋跡小車教程與單片機源程序,適合小白

  [復制鏈接]
ID:328609 發表于 2018-7-4 15:29 | 顯示全部樓層 |閱讀模式
第一次發帖,有什么不好的會改進
適合小白的教程,只是簡單的尋跡功能,
文件包含程序代碼,原理圖

制作出來的實物圖:
1307689752.jpg TB10E.rGXXXXXcyXpXXXXXXXXXX_!!0-item_pic.jpg 394373678.jpg

簡單尋跡小車教程
  • 材料

  • 一個89c51或者89c52單片機
  • 一個4路紅外線多路探測系統
  • 兩個L298N驅動電機
  • 四個小車馬達電機
如果有條件的話,可以買模板
原理圖,因為某某原因,只能手畫了,有點丑,慢慢看

  • 89c52單片機是要有最小系統的,我的原理圖上沒有畫出來,不懂的百度“最小系統”,本次實踐只是應用單片機的P1端口和P3端口
  • 其中P3口是用來檢測紅外線信號的
P3.0連接1號紅外線端口
P3.1連接2號紅外線端口
P3.2連接3號紅外線端口
P3.3連接4號紅外線端口
(注;我這里的1234號紅外線端口可能和板子是的印刷字不一樣)
  • P1口是用來控制4個馬達的,
馬達1是由P1.0和P1.4控制
馬達2是由P1.1和P1.5控制
馬達3是由P1.2和P1.6控制
馬達4是由P1.3和P1.7控制
(解釋;在L298N模板上,IN1輸入高電平,那么OUT1輸出高電平,如果IN1是低電平,那么OUT1也是低電平)同理
IN1----------OUT1
IN2----------OUT2
IN3----------OUT3
IN4----------OUT4
(L298N模板上有印刷IN,OUT的字樣)
如果要馬達轉動,對應的端口輸入一個高電平,一個低電平就行了,

2018-07-04 (5).png 2018-07-04 (6).png 2018-07-04 (7).png

單片機源程序如下:
  1. //尋跡小車
  2. #include <reg51.h>
  3. #define hei 1                                                //紅外線如果探到黑色的地方,會輸出高電平
  4. #define bai 0                                                //紅外線如果探到白色的地方,會輸出低電平

  5. sbit s1=P3^0;                                                //p3   紅外線對應端口,讀取數據
  6. sbit s2=P3^1;
  7. sbit s3=P3^2;
  8. sbit s4=P3^3;

  9. //P1口信號輸出
  10. //P1.0-P1.4控制1電機
  11. //P1.1-P1.5控制2電機
  12. //P1.2-P1.6控制3電機
  13. //P1.3-P1.7控制4電機



  14. void delay(unsigned int i)                //延時函數
  15. {
  16.         unsigned int k;
  17.         for (k=0;k<i;k++);
  18. }




  19. void main()
  20. {
  21.         while (1)
  22.                 {
  23. /**********************直走   直走  直走  直走  直走  直走  直走  直走  直走 *************************************/
  24.                         if (s1==bai && s4==bai && s2==hei && s3==hei)                //第1種,直線走,14為白,23為黑
  25.                                 {
  26.                                         delay(500);
  27.                                 if (s1==bai && s4==bai && s2==hei && s3==hei)
  28.                                 {                                                                                                                //p1        1 1 1 1                        分別對應1234號馬達
  29.                                         P1=0x0f;                                                                        //                0 0 0 0                        上面是高電平,下面是低電平,四個馬達都會向前開
  30.                                         delay(500);                                                                //延時降速,如果L298N是接12V的電源,那么馬達的速度太快了,需要降速
  31.                                         P1=0x00;                                                                        //這里降速的原理是讓馬達轉500毫秒,停一下,轉500毫秒,停一下,轉500毫秒,停一下,從而達到降速的效果
  32.                                 }                                                                                               
  33.                                 else                                                                               
  34.                                 P1=0x00;
  35.                                
  36.                 }                       
  37.        

  38. /******************                左                左                左                左                左                左                左                左                左********************************************/               
  39.                        
  40.                          else if (s1==hei)                                                        //第1種,左轉,1為黑
  41.                         {
  42.                                 delay(500);
  43.                                 if (s1==hei )
  44.                                 {                                                                                                //p1  0 1 0 1                                馬達2 4向前開,馬達1 3向后開
  45.                                         P1=0x5a;                                                        //    1 0 1 0
  46.                                         delay(1000);
  47.                                         P1=0x00;
  48.                                 }
  49.                                
  50.                                 else
  51.                                         P1=0x00;
  52.                         }               
  53.                        
  54.                        
  55.                        

  56.                          else if (s1==hei && s2==hei)                                                        //第2種,左轉,1 2為黑
  57.                         {
  58.                                 delay(500);
  59.                                 if (s1==hei )
  60.                                 {                                                                                                //p1  0 1 0 1                        馬達24向前開,馬達13向后開
  61.                                         P1=0x5a;                                                        //    1 0 1 0
  62.                                         delay(1000);
  63.                                         P1=0x00;
  64.                                 }
  65.                                
  66.                                 else
  67.                                         P1=0x00;
  68.                         }                                       
  69.                        

  70.                        
  71.                         else if (s1==bai && s3==bai && s4==bai && s2==hei)                                                        //第3種,微左轉,2黑,134白
  72.                         {                                                                                                                                                                                                        //本來小車是直線行走的,但是稍微偏離了一點,這時需要微調轉彎
  73.                                 delay(600);
  74.                                 if (s2==hei && s3==bai)
  75.                                         {                                                                        //P1        0 1 0 0                                        馬達2向前開,馬達3向后開,這樣做轉彎的幅度比較小,達到微調的效果
  76.                                         P1=0x5a;                                        //                0 0 1 0
  77.                                         delay(600);
  78.                                         P1=0x00;
  79.                                         }
  80.                                
  81.                                 else
  82.                                         P1=0x00;
  83.                         }
  84.                                
  85.                                
  86. /*********************右        右        右        右        右        右        右        右        右        右********************************************************/                       
  87.                                
  88.                         else if (s4==hei && s1==bai && s2==bai && s3==bai)                                                        //第3種,右轉,4黑,123白
  89.                         {
  90.                                 delay(500);
  91.                                 if (s4==hei)
  92.                                 {                                                                                //P1 1 0 1 0                        馬達13向前開,馬達24向后開
  93.                                         P1=0xa5;                                        //         0 1 0 1
  94.                                         delay(1000);
  95.                                         P1=0x00;
  96.                                 }
  97.                                 else
  98.                                         P1=0x0;
  99.                         }       
  100.                        
  101.                        
  102.                                                 else if (s4==hei && s1==bai && s2==bai && s3==hei)                                                        //第3種,右轉,4黑,123白
  103.                         {
  104.                                 delay(500);
  105.                                 if (s4==hei)
  106.                                 {                                                                                //P1 1 0 1 0
  107.                                         P1=0xa5;                                        //         0 1 0 1
  108.                                         delay(1000);
  109.                                         P1=0x00;
  110.                                 }
  111.                                 else
  112.                                         P1=0x0;
  113.                         }       
  114.                        
  115.                        
  116.                         else if (s1==bai && s2==bai && s4==bai && s3==hei)                                                        //第3種,微右轉,3黑,124白
  117.                         {
  118.                                 delay(600);
  119.                                 if (s3==hei && s2==bai)
  120.                                 {                                                                //P1 1 0 0 0
  121.                                         P1=0xa5;                        //         0 0 0 1
  122.                                         delay(600);
  123.                                         P1=0x00;
  124.                                 }
  125.                                 else
  126.                                         P1=0x0;
  127.                         }       
  128.                        
  129. /*****************停車         停車         停車         停車         停車         停車         停車         *********************************/               
  130.                        
  131.                        
  132.                         else if (s4==hei && s1==hei && s2==hei &&s3==hei)                                                        //第4種,停車,1234黑
  133.                         {
  134.                                 delay(1200);                                                                //P1 0 0 0 0
  135.                                 P1=0x0;                                                                                        //         0 0 0 0
  136.                         }

  137.                                
  138.                        
  139.                         else if (s4==bai && s1==bai && s2==bai &&s3==bai)                                                        //第4種,停車,1234黑
  140.                         {
  141.                                 delay(1200);
  142.                                 if (s4==bai && s1==bai && s2==bai &&s3==bai)
  143.                                 {                                                                                //P1        0 0 0 0
  144.                                         P1=0x0;                                                //                0 0 0 0
  145.                                 }

  146.                         }       

  147.                
  148.         }

  149.        
  150. }
  151. //如果小車的速度不是你想要的效果,只要更改delay(****)里面的數值就行

復制代碼

0.png

所有資料51hei提供下載:

簡單尋跡小車教程.rar (14.51 MB, 下載次數: 136)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:471352 發表于 2019-3-19 21:05 | 顯示全部樓層
請問這個單片機只是用最小系統的么?最小系統就夠用了是吧?
回復

使用道具 舉報

ID:471352 發表于 2019-3-19 21:06 | 顯示全部樓層
請問這個單片機最小系統就夠用了是吧?
回復

使用道具 舉報

ID:349823 發表于 2019-6-1 17:41 來自手機 | 顯示全部樓層
這個軌道是什么樣的呀。
回復

使用道具 舉報

ID:516871 發表于 2019-6-26 17:24 | 顯示全部樓層
我發現這里的帖子很不活躍,2018年的帖子,2019年有人問,
回復

使用道具 舉報

ID:166284 發表于 2019-6-28 10:02 | 顯示全部樓層
還能多點彩圖嗎?
回復

使用道具 舉報

ID:614274 發表于 2019-9-21 13:14 來自手機 | 顯示全部樓層
加內特tom 發表于 2019-6-1 17:41
這個軌道是什么樣的呀。

應該是中間是一條黑線的
回復

使用道具 舉報

ID:623518 發表于 2019-10-16 00:08 來自手機 | 顯示全部樓層
電源放哪了?
回復

使用道具 舉報

ID:434283 發表于 2020-2-24 11:15 | 顯示全部樓層
很有用,謝謝老鐵
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩福利 | 久久香蕉精品视频 | 久草资源在线 | 亚洲小视频在线播放 | 日韩毛片网 | 亚洲一区二区中文字幕在线观看 | 欧美性受xxxx | 日韩在线免费看 | 99久久精品国产毛片 | 在线欧美激情 | 欧美在线a | 久久国产精99精产国高潮 | 亚洲精品九九 | 久久最新 | 久久国产秒 | 国产91精品久久久久久久网曝门 | 国产美女一区二区 | 97精品国产97久久久久久免费 | 国产精品国产三级国产aⅴ中文 | 99九九久久| 国产欧美日韩一区二区三区在线观看 | 在线播放日韩 | 日韩羞羞 | 国产一级片一区二区 | www.v888av.com| 欧美不卡一区二区三区 | 在线日韩在线 | 亚洲一区二区三区在线观看免费 | 一级a爱片久久毛片 | 精品久久久久久久 | 国产高清视频在线 | 国产精品视频免费观看 | 九九热精品视频 | 狠狠爱免费视频 | 国产日韩欧美二区 | 91久久久久久久久久久久久 | 欧美中文字幕一区二区三区亚洲 | 日本精品视频 | 亚洲成人精品在线观看 | 久久精品国产一区 | 四虎成人在线播放 |