单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:2033|回复:0

arduino蓝牙遥控车程序

[复制链接]
ID:882006发表于 2021-8-25 21:47|显示全部楼层
  1. //
  2. /*#include< SoftwareSerial.h>

  3. SoftwareSerial mySerial(10, 11); // RX, TX

  4. void setup() {
  5.   Serial.begin(9600);  
  6.   mySerial.begin(9600);
  7. }

  8. void loop() {
  9.   while(mySerial.available()){
  10.    Serial.write(mySerial.read());
  11.   }
  12.   while(Serial.available()) {
  13.    mySerial.write(Serial.read());
  14.   }
  15. }*/
  16. #include< SoftwareSerial.h>

  17. int m1=10;
  18. int m2=11;
  19. int m3=6;
  20. int m4=9;
  21. #define TRIG 7
  22. #define ECHO 8
  23. float cm;
  24. float tmp;
  25. float juli;
  26. int zhi;
  27. int i;
  28. int c;
  29. char BT_COM;
  30. char BT_CON;

  31. void setup()
  32. {
  33.    pinMode(m1,OUTPUT);
  34.    pinMode(m2,OUTPUT);
  35.    pinMode(m3,OUTPUT);
  36.    pinMode(m4,OUTPUT);

  37.    Serial.begin(9600);
  38. //   mySerial.begin(9600);
  39.    pinMode(TRIG,OUTPUT);//触发输入端,默认低电平,输入一个时常超过10μs的高电平脉冲即可触发模块发射一组超声波脉冲
  40.    pinMode(ECHO,INPUT);//回声输出端,默认低电平,模块发射超声波脉冲结束后,回声端就会输出高电平,直到监听到所有超声波脉冲的回声(或监听超时)后才会重新输出低电平

  41. }
  42. void distance()//定义距离
  43. {
  44.    digitalWrite(TRIG,LOW);
  45.    delayMicroseconds(2);
  46.    digitalWrite(TRIG,HIGH);
  47.    delayMicroseconds(10);
  48.    digitalWrite(TRIG,LOW);
  49.    tmp=float(pulseIn(ECHO,HIGH));
  50.    cm=(tmp*17)/1000;
  51.    Serial.print("Echo=");
  52.    Serial.print(tmp);
  53.    Serial.print(",距离=");
  54.    Serial.print(cm);
  55.    Serial.println("cm");
  56.    juli=cm;
  57. }
  58. void  pao()
  59. {
  60.    analogWrite(m1,i);
  61.    analogWrite(m2,0);
  62.    analogWrite(m3,i);
  63.    analogWrite(m4,0);
  64. }
  65. void  pao1()
  66. {
  67.    analogWrite(m1,255);
  68.    analogWrite(m2,0);
  69.    analogWrite(m3,255);
  70.    analogWrite(m4,0);
  71. }
  72. void shache()//定义刹车
  73. {
  74.    analogWrite(m1,0);
  75.    analogWrite(m2,0);
  76.    analogWrite(m3,0);
  77.    analogWrite(m4,0);
  78.   
  79. }
  80. void youzhuan()
  81. {
  82.   
  83.    analogWrite(m1,c);
  84.    analogWrite(m2,0);
  85.    analogWrite(m3,0);
  86.    analogWrite(m4,c);
  87. }
  88. void zuozhuan()
  89. {
  90.    analogWrite(m1,0);
  91.    analogWrite(m2,c);
  92.    analogWrite(m3,c);
  93.    analogWrite(m4,0);
  94. }
  95. void houtui()
  96. {
  97.    analogWrite(m1,0);
  98.    analogWrite(m2,i);
  99.    analogWrite(m3,0);
  100.    analogWrite(m4,i);
  101.   
  102. }

  103. void youxuanzhuan()
  104. {
  105.    analogWrite(m1,255);
  106.    analogWrite(m2,0);
  107.    analogWrite(m3,130);
  108.    analogWrite(m4,0);
  109. }
  110. void zuoxuanzhuan()
  111. {
  112.    analogWrite(m1,130);
  113.    analogWrite(m2,0);
  114.    analogWrite(m3,255);
  115.    analogWrite(m4,0);
  116. }
  117. void youzuozhuan()
  118. {
  119.    analogWrite(m1,0);
  120.    analogWrite(m2,130);
  121.    analogWrite(m3,0);
  122.    analogWrite(m4,255);
  123. }
  124. void youhouzhuan()
  125. {
  126.    analogWrite(m1,0);
  127.    analogWrite(m2,255);
  128.    analogWrite(m3,0);
  129.    analogWrite(m4,130);
  130. }
  131. void bizhang()
  132. {
  133.    while(1)
  134.    {
  135.     
  136.      distance();
  137.      if(juli<=60)
  138.        {
  139.        if(juli<45)
  140.        {
  141.          youzhuan();
  142.          delay(300);
  143.          distance();
  144.          if(juli<10)
  145.            {
  146.            shache();
  147.            houtui();
  148.            delay(200);
  149.            }
  150.           
  151.           
  152.        }
  153.          else
  154.          pao();  
  155.           
  156.        }
  157.        else
  158.        pao();
  159.     
  160.      }
  161.   

  162. }
  163.           
  164.     


  165. void loop()
  166.   {
  167.    while(1)
  168.   
  169.    {
  170.     
  171.      if(Serial.available())
  172.   
  173.      {
  174.        BT_COM=Serial.read();
  175.     
  176.        if(BT_COM =='0')
  177.        {
  178.        zhi=0;
  179.        i=155;
  180.        }
  181.        else
  182.        if(BT_COM =='1')
  183.        {
  184.        zhi=1;
  185.        i=175;
  186.        }
  187.        else
  188.        if(BT_COM =='2')
  189.        {
  190.        zhi=2;
  191.        i=195;
  192.        }
  193.        else
  194.        if(BT_COM =='3')
  195.        {
  196.        zhi=3;
  197.        i=225;
  198.        }
  199.        else
  200.        if(BT_COM =='4')
  201.        {
  202.        zhi=4;
  203.        i=255;
  204.        }
  205.        else
  206.        if(BT_COM =='5')
  207.        {
  208.        zhi=5;
  209.        c=155;
  210.        }
  211.          else
  212.        if(BT_COM =='6')
  213.        {
  214.        zhi=6;
  215.          c=175;
  216.        }
  217.          else
  218.        if(BT_COM =='7')
  219.        {
  220.        zhi=7;
  221.          c=195;
  222.       
  223.        }
  224.          else
  225.        if(BT_COM =='8')
  226.        {
  227.        zhi=8;
  228.          c=225;
  229.        }      
  230.          else
  231.        if(BT_COM =='9')
  232.        {
  233.        zhi=9;
  234.        c=255;
  235.        }    
  236.      Serial.print(",a=");
  237.      Serial.print( BT_COM);
  238.      Serial.print(",值=");
  239.      Serial.print(zhi);
  240.      Serial.print(",i=");
  241.      Serial.print(i);
  242.      Serial.print(",c=");
  243.      Serial.print(c);
  244.      switch(BT_COM)
  245.        {
  246.          case'a':  pao();
  247.                break;
  248.          case'b':  houtui();
  249.                break;
  250.          case'c':  zuozhuan();
  251.                break;
  252.          case'd':  youzhuan();
  253.                break;
  254.          case'f':  shache();
  255.                break;
  256.          case'h':  bizhang();
  257.                break;
  258.          case 'g':  zuoxuanzhuan();
  259.                break;
  260.          case 'e':  youxuanzhuan();
  261.                break;
  262.          case 'l':  youhouzhuan();
  263.                break;
  264.          case 'k':  youzuozhuan();
  265.                break;
  266.         
  267.        }
  268.                 
  269.   
  270.    }
  271.   
  272.   
  273.     
  274.    }
  275.   }

复制代码


评分

黑币 +20
收起理由
+ 20
共享资料的黑币奖励!

查看全部评分

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

Powered by 单片机教程网