红外遥控Arduino智能小车

智能小车将会关于遥控、寻迹、避障的Arduino小车系列,有需要可以进入我的个人头像查看。

在智能小车项目中,我们通过控制直流电机的正反转、刹车和转速来控制小车的行动。

【i·Make】Arduino入门自学,电子学会机器人等级考试三四级,21—红外遥控只能小车

在这台小车中,对直流电机发出的控制指令来自于Arduino主控板,而Arduino主控板的外部输入则来自于超声波传感器、灰度传感器、遥控器。这篇文章我们则讲Arduino主控板的外部输入来自于遥控器。

可以制作红外遥控Arduino智能小车的套件是这套Arduino中级自学套件套件资料齐全:1>详细地知识点PPT;2>知识点视频讲解;3>硬件电路连接讲解;4>电子元件视频讲解;5>程序讲解(程序逻辑、流程图、程序功能、模块选择、参数调整等);6>有任何不懂的,技术师在线答疑。让任何软、硬件小白都能明白,无困难。

红外通信

红外通信是常用的一种无线通信方式。除了红外通信以外,还有蓝牙、WI-FI等方式。

红外通信是一种利用红外光编码进行数据传输的无线通信方式,是目前使用最广泛的一种通信和遥控手段。红外遥控装置具有体积小。功耗及成本低等特点,因而被广泛使用。日常生活中的电视遥控、空调遥控均使用红外遥控。

红外遥控组件

红外遥控器

红外遥控器上每一个按键都有各自的编码,按下按键后,遥控器就会发送对应编码的红外波。红外遥控器有多种编码方式,最常见的红外遥控器多采用NEC编码。

红外接收器

红外接收模块由红外接收头组成,红外接收头是一个一体化的红外接收电路,包含了红外监测二极管、放大器、滤波器、积分电路、比较器等。其功能是接受红外信号并还原成发射端的波形信号。红外接收器接收38KHZ左右的红外信号。

红外遥控组件

红外遥控组件分别由红外遥控器红外接收模块两部分组成。

红外遥控器发出信号,红外接收器接收信号,处理后将信号传给Arduino板,由Arduino主控板内的程序根据不同按键的键值,控制程序做出不同的反应。

使用Mind+图形化编程软件读取红外遥控器按键的编码值

 

 

 

 

 

 

 

 使用米思齐Mixly图形化编程软件读取红外遥控器按键的编码值

 

 

 智能小车系列还将会出关于巡线、避障、自动跟随的Arduino小车系列,有需要可以进入我的个人头像查看。或者关注我会持续输出一些Arduino、Micro:bit项目或者实验。

  • 1
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你需要一个 Arduino 微控制器、红外遥控器、电机驱动器、直流电机、电池和一些连接线。 首先,将电机驱动器连接到 Arduino 上,并将电机连接到电机驱动器上。然后,将红外接收器连接到 Arduino 上,并通过程序来读取接收到的红外信号。根据接收到的信号,控制电机的转动方向和速度,从而实现小车的控制。 下面是一个简单的代码示例: ```C++ #include <IRremote.h> // 定义红外遥控器的按键值 #define KEY_UP 0x18E7D827 #define KEY_DOWN 0x08E7C837 #define KEY_LEFT 0x38E728D7 #define KEY_RIGHT 0x28E7A857 #define KEY_STOP 0x906FF00F // 定义电机控制引脚 #define ENA 10 #define IN1 9 #define IN2 8 #define ENB 5 #define IN3 7 #define IN4 6 IRrecv irrecv(11); decode_results results; void setup() { pinMode(ENA, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); irrecv.enableIRIn(); // 启用红外接收器 } void loop() { if (irrecv.decode(&results)) { // 读取红外信号 switch (results.value) { case KEY_UP: // 向前 digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); analogWrite(ENA, 150); analogWrite(ENB, 150); break; case KEY_DOWN: // 向后 digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); analogWrite(ENA, 150); analogWrite(ENB, 150); break; case KEY_LEFT: // 向左 digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); analogWrite(ENA, 100); analogWrite(ENB, 100); break; case KEY_RIGHT: // 向右 digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); analogWrite(ENA, 100); analogWrite(ENB, 100); break; case KEY_STOP: // 停止 digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); analogWrite(ENA, 0); analogWrite(ENB, 0); break; } irrecv.resume(); // 接收下一个红外信号 } } ``` 注意,这只是一个简单的示例代码,你需要根据自己的电路和需要进行相应的修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值