红外遥控小车

一、源码

#include <IRremote.h> //装入红外遥控数据库

int D = A2; //设置红外信号引脚

//初始化电机引脚
int MotorRight1=12;
int MotorRight2=11;
int MotorLeft1=9;
int MotorLeft2=10;   

IRrecv J(D); //设置红外接收器

decode_results results; //解码结果

void setup()
{
  Serial.begin(9600);
  J.enableIRIn(); //启动红外接收器

    /***********初始化电机*************/
  pinMode(MotorRight1, OUTPUT);
  pinMode(MotorRight2, OUTPUT);
  pinMode(MotorLeft1, OUTPUT);
  pinMode(MotorLeft2, OUTPUT);
}

void back() //后退
{
        digitalWrite(MotorRight1,HIGH);
        digitalWrite(MotorRight2,LOW);
        digitalWrite(MotorLeft1,HIGH);
        digitalWrite(MotorLeft2,LOW);;
//        delay(g * 10);
}
void advance() // 前进
{
        digitalWrite(MotorRight2,HIGH);
        digitalWrite(MotorLeft1,LOW);
        digitalWrite(MotorLeft2,HIGH);
        digitalWrite(MotorRight1,LOW);
//        delay(a * 10);
}
void right() //右转
{
       digitalWrite(MotorLeft1,LOW);
       digitalWrite(MotorLeft2,HIGH);
       digitalWrite(MotorRight1,HIGH);
       digitalWrite(MotorRight2,LOW);
//       delay(b * 10);
}
void left() //左转
{
      digitalWrite(MotorRight1,LOW);
      digitalWrite(MotorRight2,HIGH);
      digitalWrite(MotorLeft1,HIGH);
      digitalWrite(MotorLeft2,LOW);
//      delay(c * 10);
}
void stopp() //停止
{
     digitalWrite(MotorRight1,LOW);
     digitalWrite(MotorRight2,LOW);
     digitalWrite(MotorLeft1,LOW);
     digitalWrite(MotorLeft2,LOW);
//     delay(f * 10);
}

void loop()
{
  if(J.decode(&results))  //J.解码结果,如果读到J的解码结果
  {
      Serial.println(results.value,HEX);  //HEX将读取(结果)值转换为16进制

      if(results.value == 0xFF18E7) 
      {
        advance();
        while(results.value == 0xFFFFFF);
//        {advance();}
        
      }
      else if(results.value == 0xFF4AB5)
      {
         back();
         while(results.value == 0xFFFFFF);
//         { back();}
      }
      else if (results.value == 0xFF38C7)
      {
        stopp();
        while(results.value == 0xFFFFFF);
//        {
//          stopp();
//        }
       }
      else if (results.value == 0xFF10EF)
      {
        left();
        while(results.value == 0xFFFFFF);
//        {
//           left();
//        }
       }
      else if (results.value == 0xFF5AA5)
      {
        right(); 
        while(results.value == 0xFFFFFF);
//        {
//           right(); 
//        }
      }
//      else stopp();
      J.resume(); //接收下一个值
  }
  delay(100);
}

二、效果图

红外遥控小车_哔哩哔哩_bilibili

三、原理图就不画了(哈哈哈)

四、还有个乱码的BUG没处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值