arduinoUNO L892N红外遥控小车,实现按键前进后退左转右转,不用ENA,ENB,只用红外遥控
时间: 2023-12-17 17:03:27 浏览: 142
无线遥控红外壁障小车程序
好的,您可以按照以下步骤来实现您的想法:
1. 将 L298N 电机驱动模块连接到 Arduino UNO 开发板上。将 IN1、IN2、IN3 和 IN4 分别连接到 Arduino 的数字引脚 5、6、9 和 10 上。
2. 将两个直流电机分别连接到 L298N 电机驱动模块上的 OUT1 和 OUT2 引脚和 OUT3 和 OUT4 引脚。
3. 将红外遥控器模块连接到 Arduino 上。将模块的 VCC 引脚连接到 Arduino 的 5V 引脚上,将 GND 引脚连接到 GND 引脚上,将接收器的 OUT 引脚连接到数字引脚 2 上。
4. 在 Arduino IDE 中编写程序。您可以使用如下代码作为参考:
```c
#include <IRremote.h>
//定义红外遥控器的按键值
#define KEY_UP 0xFF18E7
#define KEY_DOWN 0xFF4AB5
#define KEY_LEFT 0xFF10EF
#define KEY_RIGHT 0xFF5AA5
#define KEY_STOP 0xFF38C7
//定义电机驱动模块的引脚
#define IN1 5
#define IN2 6
#define IN3 9
#define IN4 10
IRrecv irrecv(2);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop()
{
if (irrecv.decode(&results))
{
switch (results.value)
{
case KEY_UP:
forward();
break;
case KEY_DOWN:
backward();
break;
case KEY_LEFT:
left();
break;
case KEY_RIGHT:
right();
break;
case KEY_STOP:
stop();
break;
default:
break;
}
irrecv.resume();
}
}
void forward()
{
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void backward()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void left()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void right()
{
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void stop()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
```
5. 上传程序到 Arduino 开发板上,并测试。当您按下红外遥控器上的不同按键时,小车会前进、后退、左转或右转。
希望这个回答能够帮助您实现您的想法。
阅读全文