极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12476|回复: 7

Arduino遥控小车

[复制链接]
发表于 2015-5-14 20:52:30 | 显示全部楼层 |阅读模式
本帖最后由 allenyao 于 2015-5-15 09:21 编辑

新手入门Arduino,还没有学会rf2401,所以先拿简单的315做了个简单的遥控小车。



  1. int a_enable=2;
  2. int a_in1=3;
  3. int a_in2=4;
  4. int b_enable=7;
  5. int b_in3=5;
  6. int b_in4=6;

  7. int remote_a=11;
  8. int remote_b=10;
  9. int remote_c=9;
  10. int remote_d=8;

  11. void setup()
  12. {
  13.     pinMode(a_enable,OUTPUT);
  14.     pinMode(a_in1,OUTPUT);
  15.     pinMode(a_in2,OUTPUT);
  16.     pinMode(b_enable,OUTPUT);
  17.     pinMode(b_in3,OUTPUT);
  18.     pinMode(b_in4,OUTPUT);
  19.     digitalWrite(a_enable,LOW);
  20.     digitalWrite(b_enable,LOW);

  21.     pinMode(remote_a,INPUT);
  22.     pinMode(remote_b,INPUT);
  23.     pinMode(remote_c,INPUT);
  24.     pinMode(remote_d,INPUT);
  25. }

  26. void loop()
  27. {
  28.     if(digitalRead(remote_a))
  29.     {
  30.         go_ahead();
  31.         delay(10);
  32.     }
  33.     else if(digitalRead(remote_b))
  34.     {
  35.         go_back();
  36.         delay(10);
  37.     }
  38.     else if(digitalRead(remote_c))
  39.     {
  40.         turn_left();
  41.         delay(10);
  42.     }
  43.     else if(digitalRead(remote_d))
  44.     {
  45.         turn_right();
  46.         delay(10);
  47.     }
  48.     else
  49.     {
  50.         car_stop();
  51.     }
  52. }

  53. void left_stop()
  54. {
  55.     digitalWrite(a_enable,LOW);
  56.     digitalWrite(a_in1,LOW);
  57.     digitalWrite(a_in2,LOW);
  58. }

  59. void left_back()
  60. {
  61. digitalWrite(a_enable,HIGH);
  62. digitalWrite(a_in1,HIGH);
  63. digitalWrite(a_in2,LOW);
  64. }

  65. void left_forward()
  66. {
  67. digitalWrite(a_enable,HIGH);
  68. digitalWrite(a_in1,LOW);
  69. digitalWrite(a_in2,HIGH);
  70. }

  71. void right_stop()
  72. {
  73. digitalWrite(b_enable,LOW);
  74. digitalWrite(b_in3,LOW);
  75. digitalWrite(b_in4,LOW);
  76. }

  77. void right_back()
  78. {
  79. digitalWrite(b_enable,HIGH);
  80. digitalWrite(b_in3,HIGH);
  81. digitalWrite(b_in4,LOW);
  82. }

  83. void right_forward()
  84. {
  85. digitalWrite(b_enable,HIGH);
  86. digitalWrite(b_in3,LOW);
  87. digitalWrite(b_in4,HIGH);
  88. }

  89. void car_stop()
  90. {
  91. left_stop();
  92. right_stop();
  93. }

  94. void go_ahead()
  95. {
  96. left_forward();
  97. right_forward();
  98. }

  99. void go_back()
  100. {
  101. left_back();
  102. right_back();
  103. }

  104. void turn_left()
  105. {
  106. left_back();
  107. right_forward();
  108. }

  109. void turn_right()
  110. {
  111. left_forward();
  112. right_back();
  113. }

复制代码
回复

使用道具 举报

发表于 2015-5-15 00:25:07 | 显示全部楼层
程序的话,把函数放后面,把loop循环放setup后,这样好读一些,只是个人建议哈~习惯不一样
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-15 09:34:40 | 显示全部楼层
不知道为什么我这个遥控距离有限的很

把车和遥控器拿在左右手里,遥控很灵活。放到地上,人站着遥控,超过半米就不灵活了,经常一顿一顿的

天线没有拉直?干扰大?代码不对?

这个315MHz遥控模块宣传的可以达到50米。
回复 支持 反对

使用道具 举报

发表于 2015-5-15 10:37:37 | 显示全部楼层
是不是与水平位置有关?
回复 支持 反对

使用道具 举报

发表于 2015-5-15 10:39:40 | 显示全部楼层
上面的硬件成本多少钱?有小车的淘宝地址么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-15 17:15:10 | 显示全部楼层
suoma 发表于 2015-5-15 10:37
是不是与水平位置有关?

没有什么关系。拿在手上非常灵活。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-15 17:17:31 | 显示全部楼层
suoma 发表于 2015-5-15 10:39
上面的硬件成本多少钱?有小车的淘宝地址么?

硬件成功除了Arduino板之后,其他的都很便宜。小车就是4个电机加4个轮子,淘宝上一大堆,便宜的很
回复 支持 反对

使用道具 举报

发表于 2015-5-25 12:01:47 | 显示全部楼层
本帖最后由 zk16 于 2015-5-25 12:05 编辑

我的遥控车也同样存在控制距离短的问题,电池功率不足? 晶振干扰? 电机干扰?正在研究...........与楼主共勉!   我用的是433.
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 14:13 , Processed in 0.042311 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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