当前位置: 首页 > news >正文

基于Arduino的红外遥控智能小车实现方法

一、简介

使用红外遥控器实现智能小车前进、后退、左转、右转、停止运动五种动作。

二、控制方法

使用红外遥控器遥控智能小车运行之前,需要使用红外线接收电路来读取红外线遥控器的按键代码,将获取的按键代码定义为控制智能小车前进、后退、左转、右转、停止运动的功能按键,根据该功能按键来控制小车的运行。

遥控器按键重定义后的控制策略如下表所示:

原来按键控制策略按键代码
2前进FF18E7
8后退FF4AB5
4左转FF10EF
5停止FF38C7
6右转FF5AA5

三、红外收发硬件

在这里插入图片描述

上图为红外收发的硬件组成:

  • 信号发送:使用红外线遥控器。
  • 信号接收:使用鼻梁铁壳款CHQ1838。
    在这里插入图片描述
上图为红外接收的各引脚含义,其中VCC为5V,OUT连接到Arduino UNO核心控制板的输入端口。

四、源代码

#include<IRremote.h>
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
long FORWARD=0xFF18E7;//前进代码
long BACK=0xFF4AB5;//后退代码
long RIGHT=0xFF5AA5;//右转代码
long LEFT=0xFF10EF;//左转代码
long PAUSE=0xFF38C7;//停止代码void setup() {// put your setup code here, to run once:Serial.begin(9600);irrecv.enableIRIn();irrecv.blink13(true);pinMode(RECV_PIN, INPUT);
}void loop() {// put your main code here, to run repeatedly://Serial.println("test");if(irrecv.decode(&results)){irrecv.resume();//准备接收下一个信号long resultValue = results.value;//Serial.print(results.decode_type);if(resultValue ==  FORWARD){Serial.print("forward: ");Serial.println(results.value,HEX);}else if(resultValue == BACK){Serial.print("back: ");Serial.println(results.value,HEX);} else if(resultValue == RIGHT){Serial.print("right: ");Serial.println(results.value,HEX);} else if(resultValue == LEFT){Serial.print("left: ");Serial.println(results.value,HEX);} else if(resultValue == PAUSE){Serial.print("pause: ");Serial.println(results.value,HEX);}}
}

五、运行效果

在这里插入图片描述

分别按下前进、左转、右转、后退、暂停五个按键,将分别显示相应的运行控制代码。后续将在五种不同的方向控制下添加相应的小车运行代码。

http://www.mrgr.cn/news/49549.html

相关文章:

  • C++STL(2)
  • Gin框架教程01:创建一个简单的 Gin 应用
  • 新媒体运营基本步骤
  • EditPlus安装使用
  • R语言绘制聚类热图
  • shell错误修改
  • Xilinx远程固件升级(一)——QuickBoot方案
  • 伯努利分布(Bernoulli distribution)的两次成功之间间隔次数的分布
  • git error: You have not concluded your merge (MERGE_HEAD exists).
  • Lumerical脚本语言——材料数据库(Material database)
  • javaScript if else factory function
  • 利用弹性盒子完成移动端布局(第二次实验作业)
  • 带你了解linux:学习第十六课 linux 之 Ftp Sftp
  • python之selenium接管打开的谷歌浏览器窗口——隐藏爬虫特征,跳过登陆弹窗验证
  • 监听下载上传进度
  • [STM32] 简单介绍 (一)
  • 现代数字信号处理I-P3 MVUE学习笔记
  • sqli-labs less-26 空格绕过
  • 微知-Bluefield DPU使用flint烧录固件报错MFE_NO_FLASH_DETECTED是什么?MFE是什么?
  • pip install spleeter-gpu下载失败