使用Arduino和L293D通过红外遥控器控制直流电动机
该项目展示了如何使用红外(IR)遥控器、Arduino Uno 和 L293D 电机驱动芯片控制直流电机的方向和速度。该设置允许精确控制电机,使其适用于多种应用。
这个项目为您的DIY电子项目打开了一扇可能性的大门。以下是一些可以帮助您入门的想法:
- 遥控机器人:使用红外遥控器控制小机器人的运动。
- 自动窗帘系统:远程打开和关闭窗帘或百叶窗。
- 互动艺术装置:创作动态艺术作品,其中的活动部分由红外遥控器控制。
- 平移和俯仰系统:使用红外遥控器控制摄像头或传感器的平移和倾斜。
硬件/组件
- Arduino Uno
- L293D电机驱动IC
- 直流电机
- 红外遥控器和接收器
- 二极管 (1N4001 x4)
- 连接线
- 电源(例如,电动机的9V电池)
布线指南
%%WIRING%%
(in video at 02:14)
L293D芯片需要连接Arduino和外部电源供给电机。二极管用于防反击保护。红外接收器连接到Arduino的5V和GND引脚,信号引脚连接到数字引脚11(可在代码中配置)。电机连接到L293D的输出引脚,这些引脚由Arduino控制。
代码解释
(视频中在07:30)
提供的Arduino代码利用IRremote库解码来自红外遥控器的信号。代码中重要的可配置参数包括:
const char type ='B';// W for white, B for black. Must keep single quotes like 'B' or 'W'
const boolean PCB = 0;// if receiver is PCB set to 1, if not set to 0. See video for details
设置type将变量设置为'W'表示白色遥控器,'B'表示黑色遥控器(在视频的07:41)。PCB如果您的红外接收器有PCB,则变量应设置为1;如果是裸模块,则应设置为0(在视频的07:50处)。
const String RIGHT=">";// move motor to the right (CW) with this key on remote
const String LEFT ="<";// move motor to the left (CCW) with this key on remote
const String STOP ="OK";// stop motor with this key on remote
这些行定义了用于控制电动机的红外遥控按钮标签。确保这些标签与您的遥控器上的标签匹配(视频中在 08:12)。您可以自定义这些标签以使用遥控器上的不同按钮。
#define P1A 2 // define pin 2 as for P1A
#define P2A 7 // define pin 7 as for P2A
#define EN12 8 // define pin 8 as for 1,2EN enable
int RECV_PIN = 11;
这些行定义了用于控制 L293D 电机驱动器的 Arduino 引脚(在视频中为 09:52)。P1A和P2A控制方向,和EN12启用电机。RECV_PIN是连接到红外接收器信号输出的引脚(视频中的 06:52)。如果使用不同的引脚,请修改这些。
现场项目/演示
(视频中在14:15)
该视频演示了项目的实际操作,展示了直流电机如何响应红外遥控命令。演示说明了如何控制电机顺时针和逆时针旋转,以及如何使用不同的遥控按钮停止电机。
章节
- [00:00] 介绍与项目概述
- 项目组件和先决条件
- [02:14] 接线说明
- [07:30] 代码说明和配置
- [14:15] 使用黑色遥控器和电路板的项目演示
- [16:04] 使用银色遥控器和PCB的演示
- [17:42] 使用银色遥控器和裸模块的演示
- [18:23] 使用黑色遥控器和裸露模块的演示
This code has not been parsed yet. Please return to the admin panel to parse it.
This code has not been parsed yet. Please return to the admin panel to parse it.
资源与参考
-
外部下载Arduino库(GitHub)github.com
文件📁
没有可用的文件。