arduino小车

红外版:





 蓝牙版:



WIFI版:





树莓派小车:




红外代码:
#include <IRremote.h>

int vout = 11;
IRrecv irrecv(vout);
decode_results results;
int led = 13;

int in_1 = 5;
int in_2 = 6;
int in_3 = 7;
int in_4 = 8;
int en_a = 9;
int en_b = 10;

int echo = 3;
int trig = 4;
float cm;

void space()
{
    digitalWrite(trig, 0);
    delayMicroseconds(2);
    digitalWrite(trig, 1);
    delayMicroseconds(10);
    digitalWrite(trig, 0);
    cm = pulseIn(echo, 1) / 58.0;
    Serial.print(cm);
    Serial.print("cm");
    Serial.println();
    delay(100);
}

void forward()
{
    digitalWrite(in_1, 1);
    digitalWrite(in_2, 0);
    digitalWrite(in_3, 1);
    digitalWrite(in_4, 0);
}

void back()
{
    digitalWrite(in_1, 0);
    digitalWrite(in_2, 1);
    digitalWrite(in_3, 0);
    digitalWrite(in_4, 1);
}

void left()
{
    digitalWrite(in_1, 1);
    digitalWrite(in_2, 0);
    digitalWrite(in_3, 0);
    digitalWrite(in_4, 0);
}

void right()
{
    digitalWrite(in_1, 0);
    digitalWrite(in_2, 0);
    digitalWrite(in_3, 1);
    digitalWrite(in_4, 0);
}

void stop_car()
{
    digitalWrite(in_1, 0);
    digitalWrite(in_2, 0);
    digitalWrite(in_3, 0);
    digitalWrite(in_4, 0);
}

void setup()
{
  Serial.begin(9600);
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  
  irrecv.enableIRIn();
   
  pinMode(in_1, OUTPUT);
  pinMode(in_2, OUTPUT);
  pinMode(in_3, OUTPUT);
  pinMode(in_4, OUTPUT);
  pinMode(en_a, OUTPUT);
  pinMode(en_b, OUTPUT);
  analogWrite(en_a, 255);
  analogWrite(en_b, 255);
}

void loop()
{

	if(irrecv.decode(&results))
    {
		if(results.value == 16754775)
		{
    forward();

		}
		if(results.value == 16769055)
		{
			back();
		}      
		if(results.value == 16712445)
		{
			left();
		}      
		if(results.value == 16720605)
		{
			right();
		}
		if(results.value == 16761405)
		{
			stop_car();
		}
        Serial.println(results.value);
        Serial.println(results.bits);
        Serial.println();
        irrecv.resume();
    }
}

蓝牙、wifi代码:

int in_1 = 5;
int in_2 = 6;
int in_3 = 7;
int in_4 = 8;
int en_a = 9;
int en_b = 10;

void forward()
{
    digitalWrite(in_1, 1);
    digitalWrite(in_2, 0);
    digitalWrite(in_3, 1);
    digitalWrite(in_4, 0);
}

void back()
{
    digitalWrite(in_1, 0);
    digitalWrite(in_2, 1);
    digitalWrite(in_3, 0);
    digitalWrite(in_4, 1);
}

void left()
{
    digitalWrite(in_1, 1);
    digitalWrite(in_2, 0);
    digitalWrite(in_3, 0);
    digitalWrite(in_4, 0);
}

void right()
{
    digitalWrite(in_1, 0);
    digitalWrite(in_2, 0);
    digitalWrite(in_3, 1);
    digitalWrite(in_4, 0);
}

void stop_car()
{
    digitalWrite(in_1, 0);
    digitalWrite(in_2, 0);
    digitalWrite(in_3, 0);
    digitalWrite(in_4, 0);
}

void setup()
{
  Serial.begin(9600);
   
  pinMode(in_1, OUTPUT);
  pinMode(in_2, OUTPUT);
  pinMode(in_3, OUTPUT);
  pinMode(in_4, OUTPUT);
  pinMode(en_a, OUTPUT);
  pinMode(en_b, OUTPUT);
  analogWrite(en_a, 255);
  analogWrite(en_b, 255);
}

void loop()
{

  if(Serial.available()>0)
   {
     char c=Serial.read();
      if(c=='l')
        {
          left();
        }
	if(c=='r')
        {
          right();
        }
	if(c=='a')
        {
          forward();
        }
	if(c=='b')
        {
          back();
        }
	if(c=='s')
        {
          stop_car();
        }
   }
}



  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值