allenyao 发表于 2015-5-14 20:52:30

Arduino遥控小车

本帖最后由 allenyao 于 2015-5-15 09:21 编辑

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

http://image.geek-workshop.com/album/201505/14/205606txx4i2hhuu6i9ihc.jpg

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

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

void setup()
{
    pinMode(a_enable,OUTPUT);
    pinMode(a_in1,OUTPUT);
    pinMode(a_in2,OUTPUT);
    pinMode(b_enable,OUTPUT);
    pinMode(b_in3,OUTPUT);
    pinMode(b_in4,OUTPUT);
    digitalWrite(a_enable,LOW);
    digitalWrite(b_enable,LOW);

    pinMode(remote_a,INPUT);
    pinMode(remote_b,INPUT);
    pinMode(remote_c,INPUT);
    pinMode(remote_d,INPUT);
}

void loop()
{
    if(digitalRead(remote_a))
    {
      go_ahead();
      delay(10);
    }
    else if(digitalRead(remote_b))
    {
      go_back();
      delay(10);
    }
    else if(digitalRead(remote_c))
    {
      turn_left();
      delay(10);
    }
    else if(digitalRead(remote_d))
    {
      turn_right();
      delay(10);
    }
    else
    {
      car_stop();
    }
}

void left_stop()
{
    digitalWrite(a_enable,LOW);
    digitalWrite(a_in1,LOW);
    digitalWrite(a_in2,LOW);
}

void left_back()
{
digitalWrite(a_enable,HIGH);
digitalWrite(a_in1,HIGH);
digitalWrite(a_in2,LOW);
}

void left_forward()
{
digitalWrite(a_enable,HIGH);
digitalWrite(a_in1,LOW);
digitalWrite(a_in2,HIGH);
}

void right_stop()
{
digitalWrite(b_enable,LOW);
digitalWrite(b_in3,LOW);
digitalWrite(b_in4,LOW);
}

void right_back()
{
digitalWrite(b_enable,HIGH);
digitalWrite(b_in3,HIGH);
digitalWrite(b_in4,LOW);
}

void right_forward()
{
digitalWrite(b_enable,HIGH);
digitalWrite(b_in3,LOW);
digitalWrite(b_in4,HIGH);
}

void car_stop()
{
left_stop();
right_stop();
}

void go_ahead()
{
left_forward();
right_forward();
}

void go_back()
{
left_back();
right_back();
}

void turn_left()
{
left_back();
right_forward();
}

void turn_right()
{
left_forward();
right_back();
}

血阳 发表于 2015-5-15 00:25:07

程序的话,把函数放后面,把loop循环放setup后,这样好读一些,只是个人建议哈~习惯不一样

allenyao 发表于 2015-5-15 09:34:40

不知道为什么我这个遥控距离有限的很:(

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

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

这个315MHz遥控模块宣传的可以达到50米。

suoma 发表于 2015-5-15 10:37:37

是不是与水平位置有关?

suoma 发表于 2015-5-15 10:39:40

上面的硬件成本多少钱?有小车的淘宝地址么?

allenyao 发表于 2015-5-15 17:15:10

suoma 发表于 2015-5-15 10:37 static/image/common/back.gif
是不是与水平位置有关?

没有什么关系。拿在手上非常灵活。

allenyao 发表于 2015-5-15 17:17:31

suoma 发表于 2015-5-15 10:39 static/image/common/back.gif
上面的硬件成本多少钱?有小车的淘宝地址么?

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

zk16 发表于 2015-5-25 12:01:47

本帖最后由 zk16 于 2015-5-25 12:05 编辑

我的遥控车也同样存在控制距离短的问题,电池功率不足? 晶振干扰? 电机干扰?正在研究...........与楼主共勉!   我用的是433.
页: [1]
查看完整版本: Arduino遥控小车