找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1552|回复: 1
打印 上一主题 下一主题
收起左侧

51单片机nrf24l01蓝牙制作避障智能车程序

[复制链接]
跳转到指定楼层
楼主
ID:828888 发表于 2021-3-16 10:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
51单片机制作智能车,通过手机app蓝牙对nrf2401控制,实现小车运动

单片机源程序如下:
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char



  4. unsigned int Chao_time=0;
  5. uint S1;
  6. uint S2;
  7. uint S3;
  8. sbit Trig1=P2^0;
  9. sbit Echo1=P2^1;
  10. sbit Trig2=P2^2;
  11. sbit Echo2=P2^3;
  12. sbit Trig3=P2^4;
  13. sbit Echo3=P2^5;
  14. sbit ENA=P1^2;
  15. sbit ENB=P1^3;

  16. sbit dian1=P0^0;                 //左轮前
  17. sbit dian2=P0^1;                 //左轮后
  18. sbit dian3=P0^2;                 //右轮前
  19. sbit dian4=P0^3;                 //右轮后


  20. void delay(uint z)
  21. {
  22.         uint x,y;
  23.         for(x=55;x>0;x--)
  24.                 for(y=z;y>0;y--);

  25. }

  26. void dianjigo()                          //小车前进
  27. {        

  28.         dian1=1;
  29.         dian2=0;
  30.         dian3=1;
  31.         dian4=0;

  32. }

  33. void dianjiback()                        //小车后退
  34. {        
  35.         dian1=0;
  36.         dian2=1;
  37.         dian3=0;
  38.         dian4=1;
  39. }


  40. void dianjistop()                         //小车停
  41. {        
  42.         dian1=0;
  43.         dian2=0;
  44.         dian3=0;
  45.         dian4=0;


  46. }

  47. void dianjileft()                //小车左
  48. {        
  49.         
  50.         dian1=1;
  51.         dian2=0;
  52.         dian3=0;
  53.         dian4=1;


  54. }
  55.                                                                   
  56. void dianjiright()                 //小车右
  57. {

  58.         dian1=0;
  59.         dian2=1;
  60.         dian3=1;
  61.         dian4=0;

  62. }

  63. void delay_20us()
  64. {
  65.         uchar bt;
  66.         for(bt=0;bt<100;bt++);
  67. }

  68. void Conut1()
  69. {
  70.         
  71.         while(!Echo1);
  72.         TR1=1;
  73.         while(Echo1);
  74.         TR1=0;
  75.         Chao_time=TH1*256+TL1;
  76.         TH1=0;
  77.         TL1=0;
  78.         S1=(Chao_time*1.7)/100;                                //测距离
  79. }

  80. void chaoshengbo1()
  81. {
  82.         Trig1=1;
  83.         delay_20us();
  84.         Trig1=0;
  85.         Conut1();
  86. }

  87. void Conut2()
  88. {
  89.         
  90.         while(!Echo2);
  91.         TR1=1;
  92.         while(Echo2);
  93.         TR1=0;
  94.         Chao_time=TH1*256+TL1;
  95.         TH1=0;
  96.         TL1=0;
  97.         S2=(Chao_time*1.7)/100;                                //测距离
  98. }

  99. void chaoshengbo2()
  100. {
  101.         Trig2=1;
  102.         delay_20us();
  103.         Trig2=0;
  104.         Conut2();
  105. }


  106. void Conut3()
  107. {
  108.         
  109.         while(!Echo3);
  110.         TR1=1;
  111.         while(Echo3);
  112.         TR1=0;
  113.         Chao_time=TH1*256+TL1;
  114.         TH1=0;
  115.         TL1=0;
  116.         S3=(Chao_time*1.7)/100;                                //测距离
  117. }

  118. void chaoshengbo3()
  119. {
  120.         Trig3=1;
  121.         delay_20us();
  122.         Trig3=0;
  123.         Conut3();
  124. }

  125. void main()
  126. {
  127.         TMOD=0x11;      
  128.         TR0=0;
  129.         TR1=0;
  130.         ENA=1;
  131.         ENB=1;

  132.         dianjigo();
  133.         while(1)
  134.         {
  135.                 chaoshengbo1();
  136.                 delay(1);
  137.                   chaoshengbo2();
  138.                 delay(1);               
  139.                 chaoshengbo3();
  140.                 delay(1);
  141.                 if(S2>20)
  142.                 {
  143.                         if(S1>20)
  144.                         {
  145.                                 if(S3>20)
  146.                                         dianjigo();
  147.                                 else
  148.                                         dianjiright();
  149.                         }
  150.                         else
  151.                                 dianjileft();        
  152.                 }
  153.                 else if(S2>15&&S2<20)
  154.                 {
  155.                                 
  156.                         if(S1>20)
  157.                         {
  158.                                 if(S3>20)
  159.                                         dianjigo();
  160.                                 else
  161.                                         dianjiright();
  162.                         }
  163.                         else
  164.                                 dianjileft();
  165.                 }
  166.                 else if(S2<15)
  167.                         dianjiback();
  168. //                if(S2<15)
  169. //                        dianjiback();
  170. //                if(S2>15)
  171. //                        dianjigo();
  172. //                if(S2>15&&S2<30&&S1<S3)
  173. //                        dianjiright();
  174. //                if(S2>15&&S2<30&&S1>S3)
  175. //                        dianjileft();
  176. //                        delay(1);
  177.         }
  178.         
  179. }
复制代码

以上代码51hei提供下载:
物联网智能车程序.zip (84.09 KB, 下载次数: 21)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:894065 发表于 2021-4-11 19:29 | 只看该作者
你这是超声波小车哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表