材料:1.红外接收头 2. mp3红外遥控器 3.arduino pro mini 4.L298N驱动板
接线看代码
#include <IRremote.h>
int RECV_PIN = 11; //定义红外接收模块输出口接arduino数字引脚11
//此处定义遥控器的各个按键
#define stop 16738455 //0
#define forward 16718055 //2
#define left 16716015 //4
#define back 16726215 //5
#define right 16734885 //6
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); //初始化红外遥控
pinMode(4, OUTPUT); //设置IO口4的模式为输出
pinMode(5, OUTPUT); //设置IO口5的模式为输出
pinMode(6, OUTPUT); //设置IO口6的模式为输出
pinMode(7, OUTPUT); //设置IO口7的模式为输出
}
//这里是简单的根据遥控器传播过来的信号,做一个匹配,我已经事先获取每一个键的编码
void loop() {
if (irrecv.decode(&results)) {
switch(results.value){
case stop :
Serial.println("stop");
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
break;
case forward :
Serial.println("forward");
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
break;
case left :
Serial.println("left");
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
break;
case back :
Serial.println("back"); //当按下s即返回back值(这个可以自定义)
digitalWrite(4, LOW); //IO口4输出低电平
digitalWrite(5, HIGH); //IO口5输出高电平
digitalWrite(6, LOW); //IO口6输出低电平
digitalWrite(7, HIGH); //IO口7输出高电平 下面的是和这里的意思是一样的
break;
case right :
Serial.println("right");
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
break;
}
irrecv.resume(); // 接收下一个值
}
}
|