找回密码
 立即注册

QQ登录

只需一步,快速开始

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

arduino蓝牙小车加避障代码

[复制链接]
跳转到指定楼层
楼主
ID:208355 发表于 2017-6-6 12:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #define IN1 4
  2. #define IN2 5
  3. #define IN3 6
  4. #define IN4 7
  5. void forward();
  6. void back();
  7. void turnLeft();
  8. void turnRight();
  9. void _stop();
  10. int ledpin=13;
  11. int i;
  12. int TrigPin = 8;
  13. int EchoPin = 9;
  14. void setup()
  15. { pinMode(IN1,OUTPUT);
  16. pinMode(IN2,OUTPUT);
  17. pinMode(IN3,OUTPUT);
  18. pinMode(IN4,OUTPUT);
  19. pinMode(TrigPin, OUTPUT);
  20. pinMode(EchoPin, INPUT);
  21. pinMode(ledpin,OUTPUT);
  22. Serial.begin(9600);
  23. }
  24. void loop()
  25. {
  26. i= Serial.read();
  27. digitalWrite(TrigPin, LOW); // 使发出发出超声波信号接口低电平2μs
  28. delayMicroseconds(2);
  29. digitalWrite(TrigPin, HIGH); // 使发出发出超声波信号接口高电平10μs,这里是至少10μs
  30. delayMicroseconds(10);
  31. digitalWrite(TrigPin, LOW); // 保持发出超声波信号接口低电平
  32. int distance = pulseIn(EchoPin, HIGH); // 读出脉冲时间
  33. distance= distance/58; // 将脉冲时间转化为距离(单位:厘米)
  34. Serial.println(distance); //输出距离值
  35. delay(50);
  36. if (distance <=30)
  37. {//如果距离大于50厘米小灯亮起
  38. digitalWrite(ledpin,HIGH);
  39. digitalWrite(IN1,LOW);
  40. digitalWrite(IN2,LOW);
  41. digitalWrite(IN3,LOW);
  42. digitalWrite(IN4,LOW);

  43. }//如果距离小于50厘米小灯熄灭
  44. else
  45. digitalWrite(ledpin,LOW);

  46. //if(Serial.available())
  47. //i= Serial.read();
  48. switch(i)
  49. { case'1':{turnLeft();break;}
  50.   case'2':{forward();break;}
  51.   case'3':{turnRight();break;}
  52.   case'4':{_stop();break;}
  53.   case'5':{back();break;}
  54. }
  55.   
  56. }
  57. void forward()
  58. { digitalWrite(IN1,HIGH);
  59. digitalWrite(IN2,LOW);
  60. digitalWrite(IN3,HIGH);
  61. digitalWrite(IN4,LOW);
  62. }
  63. void back()
  64. { digitalWrite(IN1,LOW);
  65. digitalWrite(IN2,HIGH);
  66. digitalWrite(IN3,LOW);
  67. digitalWrite(IN4,HIGH);
  68. }
  69. void turnLeft()
  70. { digitalWrite(IN1,LOW);
  71. digitalWrite(IN2,LOW);
  72. digitalWrite(IN3,HIGH);
  73. digitalWrite(IN4,LOW);
  74. }

  75. void turnRight()
  76. { digitalWrite(IN1,HIGH);
  77. digitalWrite(IN2,LOW);
  78. digitalWrite(IN3,LOW);
  79. digitalWrite(IN4,LOW);
  80. }

  81. void _stop()
  82. { digitalWrite(IN1,LOW);
  83. digitalWrite(IN2,LOW);
  84. digitalWrite(IN3,LOW);
  85. digitalWrite(IN4,LOW);
  86. }

复制代码


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

使用道具 举报

沙发
ID:209131 发表于 2017-6-8 11:24 | 只看该作者
新手看懂了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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