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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:328609 發(fā)表于 2018-7-4 15:29 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
第一次發(fā)帖,有什么不好的會改進(jìn)
適合小白的教程,只是簡單的尋跡功能,
文件包含程序代碼,原理圖

制作出來的實物圖:


簡單尋跡小車教程
  • 材料

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

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



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

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

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



  14. void delay(unsigned int i)                //延時函數(shù)
  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                        分別對應(yīng)1234號馬達(dá)
  29.                                         P1=0x0f;                                                                        //                0 0 0 0                        上面是高電平,下面是低電平,四個馬達(dá)都會向前開
  30.                                         delay(500);                                                                //延時降速,如果L298N是接12V的電源,那么馬達(dá)的速度太快了,需要降速
  31.                                         P1=0x00;                                                                        //這里降速的原理是讓馬達(dá)轉(zhuǎn)500毫秒,停一下,轉(zhuǎn)500毫秒,停一下,轉(zhuǎn)500毫秒,停一下,從而達(dá)到降速的效果
  32.                                 }                                                                                               
  33.                                 else                                                                               
  34.                                 P1=0x00;
  35.                                
  36.                 }                       
  37.        

  38. /******************                左                左                左                左                左                左                左                左                左********************************************/               
  39.                        
  40.                          else if (s1==hei)                                                        //第1種,左轉(zhuǎn),1為黑
  41.                         {
  42.                                 delay(500);
  43.                                 if (s1==hei )
  44.                                 {                                                                                                //p1  0 1 0 1                                馬達(dá)2 4向前開,馬達(dá)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種,左轉(zhuǎn),1 2為黑
  57.                         {
  58.                                 delay(500);
  59.                                 if (s1==hei )
  60.                                 {                                                                                                //p1  0 1 0 1                        馬達(dá)24向前開,馬達(dá)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種,微左轉(zhuǎn),2黑,134白
  72.                         {                                                                                                                                                                                                        //本來小車是直線行走的,但是稍微偏離了一點(diǎn),這時需要微調(diào)轉(zhuǎn)彎
  73.                                 delay(600);
  74.                                 if (s2==hei && s3==bai)
  75.                                         {                                                                        //P1        0 1 0 0                                        馬達(dá)2向前開,馬達(dá)3向后開,這樣做轉(zhuǎn)彎的幅度比較小,達(dá)到微調(diào)的效果
  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種,右轉(zhuǎn),4黑,123白
  89.                         {
  90.                                 delay(500);
  91.                                 if (s4==hei)
  92.                                 {                                                                                //P1 1 0 1 0                        馬達(dá)13向前開,馬達(dá)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種,右轉(zhuǎn),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種,微右轉(zhuǎn),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(****)里面的數(shù)值就行

復(fù)制代碼



所有資料51hei提供下載:

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


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:471352 發(fā)表于 2019-3-19 21:05 | 只看該作者
請問這個單片機(jī)只是用最小系統(tǒng)的么?最小系統(tǒng)就夠用了是吧?
回復(fù)

使用道具 舉報

板凳
ID:471352 發(fā)表于 2019-3-19 21:06 | 只看該作者
請問這個單片機(jī)最小系統(tǒng)就夠用了是吧?
回復(fù)

使用道具 舉報

地板
ID:349823 發(fā)表于 2019-6-1 17:41 來自手機(jī) | 只看該作者
這個軌道是什么樣的呀。
回復(fù)

使用道具 舉報

5#
ID:516871 發(fā)表于 2019-6-26 17:24 | 只看該作者
我發(fā)現(xiàn)這里的帖子很不活躍,2018年的帖子,2019年有人問,
回復(fù)

使用道具 舉報

6#
ID:166284 發(fā)表于 2019-6-28 10:02 | 只看該作者
還能多點(diǎn)彩圖嗎?
回復(fù)

使用道具 舉報

7#
ID:614274 發(fā)表于 2019-9-21 13:14 來自手機(jī) | 只看該作者
加內(nèi)特tom 發(fā)表于 2019-6-1 17:41
這個軌道是什么樣的呀。

應(yīng)該是中間是一條黑線的
回復(fù)

使用道具 舉報

8#
ID:623518 發(fā)表于 2019-10-16 00:08 來自手機(jī) | 只看該作者
電源放哪了?
回復(fù)

使用道具 舉報

9#
ID:434283 發(fā)表于 2020-2-24 11:15 | 只看該作者
很有用,謝謝老鐵
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区播放 | 久久免费视频网 | 黄频免费 | 久久久久综合 | 五月激情综合网 | 99热.com| 欧美激情欧美激情在线五月 | 亚洲精品久久久久久久久久久久久 | 欧美精品一区二区三区蜜桃视频 | 男人的天堂中文字幕 | 国产一区二区三区在线 | 国产欧美久久精品 | 久久亚洲视频 | 日韩视频在线观看中文字幕 | 成在线人视频免费视频 | 国产高清在线精品 | 精品国产91亚洲一区二区三区www | 日韩精品一区二区三区中文字幕 | 久久久久国产精品一区二区 | 亚洲欧美日韩一区二区 | 久久成人精品视频 | av电影手机版 | 黄色成人av | 成人免费大片黄在线播放 | 精品综合 | 亚洲高清在线免费观看 | 99亚洲精品 | 日韩欧美网| 精品久久久久久久久久久久久久久久久 | 精品国产欧美一区二区 | 久久一视频 | 国产精品永久免费观看 | 国产一二三区精品视频 | 国产免费一区 | 在线一区二区三区 | 夜夜久久 | 久久乐国产精品 | 操操操日日日 | 亚洲一区二区免费视频 | 国产一区二区三区免费 | 色婷婷国产精品综合在线观看 |